問題タブ [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.
haskell - 2 つの単純なレンズの結果を 1 つに結合する方法
以下のように定義されたデータ型があるとします。
Register
ここで、a から aに焦点を合わせるレンズを定義したいとしますWord16
。この関数は次のようになります。
( Word8
、Word16
、shiftL
、および.&.
はData.Word
およびからのものであり、ソース コードの冒頭でData.Bits
有効にしています。)RankNTypes
ただし、このコードは機能しません。完全な型定義には 4 つの型パラメーターがあり、単純なとして機能するLens
よりも複雑になる可能性があると思います。Lens'
Monad
では、上記の効果をどのように達成できますか?
ありがとう。
haskell - レンズ ライブラリを使用して、インデックスによってリストからアイテムを削除する方法は?
たとえば、次のようなレンズを使用してリストの 4 番目の項目を表示できます。
リストから 4 番目の項目を表示する代わりに削除するために、「プレビュー」を置き換えることができるものはありますか? 返されるリストは元のリストと同じである必要があり、4 番目の項目が削除されます。
あるいは、filtered 関数を使用してこれを行う方法があるかもしれません。
haskell - fclabels の「左」レンズを使用するとタイプ エラーが発生する
fclabels をテストするための最小限の例を作成しました。レンズを使用して、Either 値から「正しい」値を取得します。なぜこれが失敗するのですか?何かを含めるのを逃しましたか?
swift - レンズを Swift プロパティに
Swift のクラスのプロパティの getter/setter 関数ペアを自動的に生成する方法はありますか? Haskell のレンズのようなものです。
私は次のことを手動で行うことができました:
しかし、それは私が望むよりも冗長で退屈で、エラーが発生しやすくなります。不足している組み込み機能はありますか?
haskell - 指定されたインデックスを持つ要素のみをトラバースする Traversable to Traversable
次の関数を構築することは可能だろうか
が使用さpure
れる i 番目を除くすべての要素を使用v -> a v
します (指定されたインデックスを持つ値のトラバーサル)。
基本的に、すべてのトラバーサブルに対して次の関数を一般化しようとしています。それとも無理ですか?Traversable は常にZipperに変換でき、一般化できると考えました。
haskell - 型変数はそのスコープをエスケープします
xml-lens
(パッケージから) lens 引数を指定して、関数をリファクタリングしようとしています。型量指定子について何かが欠けています。ここで何が起こっているのですか?
興味深いことに、この署名は機能します。
haskell - トラバースを使用した Haskell レンズのチュートリアル
私はこのチュートリアルに従おうとしています: http://blog.jakubarnold.cz/2014/08/06/lens-tutorial-stab-traversal-part-2.html
ghci にロードする次のコードを使用しています。
そこから、次のような単純なものが機能します。
ただし、次のステップを実行しようとすると機能しません。
私は得る:
Lens には Functor の型制約があり、traverse には Applicative として f により制約された型制約があることがわかります。これが正確に機能しないのはなぜですか? また、ブログのチュートリアルで機能することが示唆されているのはなぜですか?