4

次のテンプレートHaskell関数を考えてみましょう。

composeQ :: ExpQ -> ExpQ -> ExpQ
composeQ = \x y -> [| $(x) . $(y) |]

方程式の右辺からラムダ式を削除し、composeQポイントフリースタイルを使用して書き込むことは可能ですか?

4

1 に答える 1

4

ポイントフリースタイルで式を任意の引用につなぎ合わせる一般的な方法はありませんが、この特定のケースは次のように実装できます。

composeQ :: ExpQ -> ExpQ -> ExpQ
composeQ = flip infixApp [|(.)|]

infixAppここでは、通常、順序でパラメーターを取り、それを構成オペレーターに提供するフリップがありleft op rightましop left rightた。これで、元の と同等のポイントフリー関数ができましたcomposeQ

于 2012-02-24T06:31:45.637 に答える