私は次のコードを書きました。このコードは、一連のポイントを取得し、gloss ライブラリを使用して画面に描画します。
let s = blocks pes
pts = map (map mkPt) s {- stitches to points-}
lines = map Line pts {-points to lines -}
pict = Pictures lines {- lines to a picture -}
in do displayInWindow "My Window" (200, 200) (10, 10) white pict
それは正常に動作しますが、繰り返されるパターンがあることに気付きました。関数呼び出しのチェーンであり、それぞれの結果が次の最後の引数に供給されます。そこで、中間変数を削除してリファクタリングし、順序を逆にして、関数合成 (".") を使用して関数を次のように連鎖させました。
let pict = Pictures . (map Line) . (map $ map $ mkPt) . blocks $ pes
in do displayInWindow "My Window" (200, 200) (10, 10) white pict
幸いなことに、これも問題なく機能します。しかし、読みやすさに負担をかけているのか、それともポイントフリースタイルのコードの読み書きに慣れていないだけなのか疑問に思っています。また、このコードについてどのように推論すればよいですか? 2 番目のバージョンはより効率的ですか、それとも簡潔ですか? より明確にするためにスタイル的にできることはありますか?