問題タブ [lenses]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
data-structures - レンズ、fclabels、データアクセサー-構造へのアクセスと変異のためのどのライブラリが優れているか
レコードのフィールドにアクセスして操作するための人気のあるライブラリが少なくとも3つあります。私が知っているのは、データアクセサー、fclabels、レンズです。
個人的にはデータアクセサーから始めて、今は使っています。しかし最近、haskell-cafeでfclabelsが優れているという意見がありました。
したがって、私はこれら3つの(そしておそらくそれ以上の)ライブラリの比較に興味があります。
haskell - 機能レンズ
誰かが私に機能レンズを説明してもらえますか?それはグーグルにとって驚くほど難しい主題であり、私は何の進歩もしていません。私が知っているのは、OOと同様のget/set機能を提供することだけです。
haskell - 従属クラス制約のあいまいな型変数
Snap Webフレームワーク用の新しい認証システムを作成しています。これは、組み込みの認証システムが十分にモジュール化されておらず、アプリケーションにとって冗長/「自重」であるいくつかの機能を備えているためです。ただし、この問題はスナップとはまったく関係ありません。
そうしている間、私はあいまいな型制約の問題にぶつかりました。次のコードでは、の型は関数型back
の型変数にしかなり得ないことは明らかですがb
、GHCは型があいまいであると不平を言っています。
たとえばを使用せずに、タイプback
がになるように次のコードを変更するにはどうすればよいですか(問題は制約にあり、一般的なタイプが多すぎることではないため)?どこかに必要な機能依存性はありますか?b
ScopedTypeVariables
関連する型クラス:
失敗するコード:
完全なエラー:
scala - Map 値にディープ コピーしながら、レンズを使用して繰り返しを回避する
次のように、マップに値をネストした不変のデータ構造があります。
TradingDay
これとは別に、その日のすべての取引のリストがあり、構造を生成したいと考えています。
この構造をレンズ (付録を参照) で更新する方法を理解しようとしています。
これは機能します。しかし、(マップに追加してからマップのキーの値を変更するという点で) 反復を減らすことができるかどうか疑問に思っています。関連するディープコピーよりもそれほど面倒ではないようです。
付録 - レンズ
haskell - レンズを使用することの長所と短所は何ですか?
レンズには不利な点はないようですが、標準のHaskellに比べて大きな利点があります。可能な限りレンズを使用すべきでない理由はありますか?パフォーマンスに関する考慮事項はありますか?さらに、テンプレートHaskellには大きなオーバーヘッドがありますか?
haskell - レンズは何に使用/有用ですか?
実際の例では、レンズが何に使われているのか説明がつかないようです。ハッキングページのこの短い段落は、私が見つけたものに最も近いものです。
このモジュールは、構造の要素にアクセスして更新するための便利な方法を提供します。これはData.Accessorsと非常に似ていますが、もう少し一般的で、依存関係が少なくなっています。私は特に、州のモナドでネストされた構造をきれいに処理する方法が好きです。
それで、彼らは何のために使われますか?他の方法に比べてどのようなメリットとデメリットがありますか?なぜそれらが必要なのですか?
scala - Scalazレンズ構成
ここで本当に簡単な質問。レンズの優れた紹介を見た後:
http://www.youtube.com/watch?v=efv0SQNde5Q
私は話でカバーされた簡単な例の1つを試みるかもしれないと思いました:
この後にこのエラーが続きました
これを機能させる方法について何かアイデアはありますか?
haskell - リスト、バイト文字列、テキスト (およびおそらく他の同様の表現) で単一の関数を機能させる
任意のシンボルのシーケンスで検索を行う関数を作成しています。Foldable
リストやs だけでなくByteString
s やs でも機能するように、十分に一般的なものにしたいと思いますText
。それを一般化するのFoldable
は簡単です。しかし、ByteString
s とText
s を含める方法は? 確かにByteString
、リストに変換してから関数を呼び出すことはできますが、すべての利点が失われますByteString
。
具体的な例として、ヒストグラム関数を作成したいとしましょう:
しかし、ByteString
Text も Text もできないため(任意の要素ではなくs/ sFoldable
のみを格納する)、型シグネチャが異なるだけで、以前のものとまったく同じように見える関数をさらに作成することに行き詰まっています。Word8
Char
これは、Haskell のような関数型言語では予期しないことです。
ジェネリックにする方法、histogram
一度だけ書く方法は?
haskell - Data.Lens または Control.Lens
重複の可能性:
lens、fclabels、data-accessor - 構造アクセスとミューテーション用のどのライブラリが優れているか
次の Haskell プロジェクトでは、Lens パッケージを使用して学習します。Data.Lens
パッケージにvan Laarhoven Lensesが記載されているこの投稿を見つけたとき、私はパッケージをほぼ決定していましたControl.Lens
。
どちらを使用するかを決定するのに十分な違いをまだ理解していません。実際のプロジェクトで学習/使用することをお勧めするパッケージはどれですか?
ありがとう。
lens, fclabels, data-accessor - 構造アクセスとミューテーション用のどのライブラリが優れているか
scala - 継承による不変データ構造の更新
私は戦略的なゲームを作っており、学んだことを応用し、不変のデータを使用しようとしています。私のゲームにはユニットがあり、これらのユニットは異なる特別な機能を持つことができます。たとえば、一部の飛行機は自分自身を隠すことができます。私が探しているのは、ある種のことができる方法です
コピーして貼り付ける必要はありません:
Hidable を mixin するすべてのケース クラスで。