(\(a, b) -> a < b)関数合成で表現するより良い方法はありますか? 私は何かが欠けているように感じ、実験はcurry私をさらに混乱させるだけです.
2 に答える
12
curryここで使用するのは間違っています。タプルを操作する関数をカリー化された関数に変換します。反対のものが必要です。つまり、次のuncurryとおりです。
uncurry :: (a -> b -> c) -> (a, b) -> c
この場合はuncurry (<)です。
(タプルに関数を書くのに役立つコンビネータのもう 1 つの便利なソースはControl.Arrowです。(->)は のインスタンスであるため、としてArrow読むことができます。)a b cb -> c
于 2012-01-24T20:06:04.970 に答える