問題タブ [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.

0 投票する
1 に答える
677 参照

haskell - Haskell の「関数合成を使用してレンズを合成する」という奇妙な引数の順序をどのように実装できますか?

A wreq tutorialを読んでいます:

レンズは、Haskell 値の一部に焦点を当てる方法を提供します。たとえば、Response型にはresponseStatusレンズがあり、サーバーから返されるステータス情報に焦点を当てています。

この^.演算子は、最初の引数として値を、2 番目の引数としてレンズを取り、レンズによってフォーカスされた値の部分を返します。

関数合成を使用してレンズを構成します。これにより、深く入れ子になった構造の一部に簡単に焦点を合わせることができます。

この引数の順序で行われる関数合成が、入れ子構造をその順序でどのように処理できるかを思いつくことはできません。

見てください:またはr ^. responseStatus . statusCodeのいずれr ^. (responseStatus . statusCode)(r ^. responseStatus) . statusCodeです。

最初のものは、最初に処理する関数を構築しstatusCode(レコードから取得しStatusますか?-表示された値から推測できるようにStatus {statusCode = 200, statusMessage = "OK"})、次にresponseStatus応答ステータスを処理する必要がある関数に渡します。つまり、逆です。実際には、ステータス コードは応答ステータスの一部です。

2番目の読み取りも、ステータスコードを最初に処理するため、意味がありません。

0 投票する
1 に答える
161 参照

haskell - 制約のあるデータに対する makeLenses (DatatypeContexts)

makeLenses制約付きのデータ型でテンプレートを使用できますか? できる場合、その方法は? Template Haskellについてすべて読まずに、そうしたいと思います。

GHC には次の例があります。

これにより、次のコンパイル エラーが発生します。

だから私はそれが生成したと思います:

私も試してみましmakeFieldsmakeClassyが、役に立ちませんでした。

私はこれを回避できることを知っています:

makeLensesしかし、テンプレート Haskellでそれを行う方法はありますか?

GHC バージョン 7.8.4 とlensバージョン 4.8 を使用しています。

(注: makeLenses について同様の質問があったことは知っていますが、それでも機能させることができませんでした。私は haskell の初心者です。)

0 投票する
2 に答える
1025 参照

haskell - レンズを使用してトラバースし、マップ内の一部の (すべてではない) 要素に割り当てる方法

レンズとコンテナを一緒に使用していくつかの成功を収めようとしましたが、Data.Map のフィルタリング トラバーサルを使用しようとして理解の限界に達しました。マップ内の個々のインスタンスを変更したり、すべてのインスタンスをトラバースしたりできますが、できません。識別可能なパーティション (つまり、範囲内のキー) を操作する方法を考え出します。

基本的に、Gabriel Gonzalez の優れたレンズ チュートリアルがリストで行うことと同様のことをマップで実行しようとしています [1]。

traverseSomeこれは、コメントアウトされた書き方がわからない関数を使用した私のコードの作業スケルトンです。どんな助けもありがたく受け取った!

[1] http://www.haskellforall.com/2013/05/program-imperatively-using-haskell.html

0 投票する
1 に答える
218 参照

scala - Scalaz Lens から ReaderWriterState へ

与えられた、言う

どうやって思いつくのですか:

ageLレンズを活かしながら。Scalaz Lens には から を作成するユーティリティがいくつかありますがStateLensそれを に変換する方法がわかりませんReaderWriterState