以下のスニペットでは、f
とg
という方法の機能を説明することができません。foo
は機能しません。それをするために。値の制限:タイプ 'bar'がジェネリックタイプを持っていると推測されました
let f a b = a,b
let g (a : 'a) (b : 'a) = a
let (>!) f1 f2 =
fun a b ->
let (x,y) = f1 a b
f2 x y
let foo = fun a b -> (f >! g) a b
let bar = f >! g
bar
が機能しない理由誰もが、私には説明できますか? foo
にもジェネリックタイプがあるとすれば、それは私には意味がありません。
gの引数に同じ型があり、fが2つの異なる型を受け入れるという制限を追加しました –
@PanagiotisKanavos '' g''の引数に注釈を付けずに、 '' a - > ' b - > 'a''。だから私は今、それが "a - > a a - > a"であるとすれば、それがなぜ変わるのか分からない。 – BitTickler