2017-05-05 7 views

答えて

3

コンビネータは通常​​と呼ばされていること;

// convert: f: ('a -> 'a -> 'b) -> 'a -> 'b 
let convert f x = f x x 

使用例は、部分的に被乗数と乗数を固定する乗算演算子*convertを適用するかもしれませんその名前はRaymond Smullyanの本To Mock a Mockingbirdから来ています。これには、お互いの曲を模倣できる鳥の形で提示された、コンビネーション機能の周りに論理パズルがあります。 Suaveのthis usageと、コンビネータ機能の全部をリストアップしたthis page(「標準」のものとあまり知られていないもの)とSmullyanが彼の本で与えた名前を参照してください。

1

F#で呼び出された内容にはまったく答えられていませんが、APLまたはJでは「反射的」(または「反射的」)演算子と呼ばれています。 APLでは、それはと綴られており、モナド的に使用されています - つまり、1つの関数(その左側)に適用されています。 Jでは、それは~と呼ばれ、同じ方法で使用されます。

たとえば、f⍨ xは、x f xに相当します(APLでは、2つの引数をとる関数は常にバイナリインフィックスの形式で使用されます)。

だから "fixedMultiplication"(または正方形)関数は、これが機能するための単項join演算子であるJ.

1

にAPLに×⍨、又は*~あります。

(a -> (a -> b)) -> (a -> b) 
join

Monad m => m (m a) => m a 

を入力しており、機能(すなわち((->) a)入力タイプが固定されてモナドを形成するので、join型を有します

関連する問題