ちゅーんさんがreasonable-lensをHackageでリリースしたようです
はいはい、最近色々とアレがアレしてアレな感じのちゅーんさんですがちゃんと生きてます。安心してください。
もともとekmettによってlensというパッケージが公開されています。
これがすごく強力で便利な代物なのですが、いかんせん巨大で依存関係も複雑なので、使うのに気合が必要という問題があったりします。
根本的な仕組みは複雑であれ大きくは無いので、良く使う機能に限定した小型版lensを実装しました。
以下、HackageのURL:
https://hackage.haskell.org/package/reasonable-lens
これは何なの
lensは複雑な代数的データ型へのフィールドアクセスをぐっと使いやすくするためのライブラリです。 TemplateHaskellによるコンパイル時処理で、アクセサと呼ばれる関数を生成する事で、ややこしいフィールド操作をサポートします。
基本的な機能やら使い方については、去年のEkmett勉強会での発表資料を参照してください。
Ekmett勉強会発表資料 from 時響 逢坂
対応機能
- Lens
- 型 Lens
- Setter
- Getter
- 型 Getting, Accessor
- 関数 foldMapOf, foldOf, use
- 演算子 ^.
- Tuple
- 型クラス Field1, ~ , Field4
- 関数 _1, ~ , _4
- TH
- 関数 makeLenses
課題
絶対欲しい機能
対応するかもしれないやつ
- Action
- Iso
- Prism
その他課題
- パフォーマンス
- ekmettの本気チューニングに勝てる気はしないけど可能な限り
- 可読性向上
- 内部的な問題だけど、THがカオス
- 本家だとPrism使ってるんだよねー。どういう事なんだろ。