16
Lens
ライブラリで少し遊びたいです。私はGHCiの中にそれをロードし、適切なアンダースコアを持つレコードのデータ型を作成しました:GHCiのレコードからレンズを作る方法
> data Foo a = Foo {_arg1 :: Int, _arg2 :: [a]}
私はmakeLenses
テンプレートを使用してFoo
用レンズをしたいと思います。私はTemplate-Haskell docsのセット全体を読む必要なしにこれをしたいと思います。
これを機能させるには、GHCiプロンプトで何を入力すればよいですか?
'makeLenses'コールが' *同じ*に行かなければならないことを言及する価値がある:{データ宣言として 'ブロック!それは私がそれを理解するまで私をループのために投げた。 – kqr
:{makeLensesと一緒に}ブロックに_any_ステートメントがあれば十分です(AST宣言である必要はありません)。私が理解する限り、ghciは 'makeLenses'を宣言リストとして展開します。 :{block}に1つのステートメントしかない場合は、expressionとして展開して型の不一致エラーを返します。 – max630