16

Sコンビネータのアナログは、標準関数のみを使用して (方程式で定義せずに)、ラムダ (無名関数) を使用せずに Haskell で表現できますか? のタイプであると期待してい(a -> b -> c) -> (a -> b) -> a -> cます。

たとえば、Kコンビネータの類似物はちょうどconstです。

実際、私は\f x -> f x x標準関数を使用して関数を表現しようとしていますが、最初から標準の非線形関数を考えることはできません(これは、その引数を複数回使用する関数です)。

4

3 に答える 3

32

s = (<*>)((->) r) Applicativeインスタンスのために。

于 2014-04-15T22:00:03.273 に答える
21

最初はそうは見えませんapが、S コンビネーターです (そしてjoin、あなたが本当に求めているコンビネーターです)。

于 2014-04-15T21:59:14.870 に答える