4

Haskell では、セクションを使用して中置関数を部分的に適用することができます。たとえば、中置関数 < (未満) が与えられた場合、関数の引数 (5 <) 、 (< 5) のいずれかを部分的に適用できます。

言い換えれば、haskell では、次の簡略表記があります。

op :: a -> b -> c
(`op` y) === \x -> x `op` y
(x `op`) === \y -> x `op` y

F# にも同様の概念がありますか?

4

2 に答える 2

5

いいえ、どちらもありません ( のような標準的な部分適用は別として(=) x)。


私は の簡潔さが好きですが、 (または) のSeq.find ((=) x)ようなものは単に読みにくいので、すぐにラムダ式 imo に置き換える必要があります。Seq.filter ((<) 3)Seq.map (flip (-) 1)

于 2010-01-01T22:16:33.850 に答える
4

独自の基準を発明したい場合...

let lsection x f y -> f x y
let rsection f y x -> f x y

そして。lsection 5 (<) === (5 <)_rsection (<) 5 === (< 5)

実際には、言語サポートがなければ、そこにラムダを入れるだけでより明確になります。

于 2010-01-01T22:50:52.030 に答える