OCaml 中是否有等效于 Haskell 的$
運算子,還是我必須依賴括號?參見例如,
multiplyByFive 5 1 = 26
但
multiplyByFive $ 5 1 = 30
uj5u.com熱心網友回復:
標準庫定義了從右到左的應用程式運算子@@
let compose h g f x = h @@ g @@ f x
和從左到右的應用運算子|>
:
let rev_compose f g h x = x |> f |> g |> h
具有預期的關聯性(右為@@
和左為|>
)。
uj5u.com熱心網友回復:
您正在尋找@@
# let multiplyby5 a = 5 * a;;
val multiplyby5 : int -> int = <fun>
# multiplyby5 5 1;;
- : int = 26
# multiplyby5 @@ 5 1;;
- : int = 30
uj5u.com熱心網友回復:
在 OCaml 中,您可以使用應用程式運算子(在 OCaml 4.01 中添加)來實作相同的目的。
multiplyByFive @@ 5 1
- : int = 30
應用運算子具有右優先權,因此首先計算運算子的右側,類似于 Haskell 的應用運算子 ($)。您可能還想查看 OCaml 中的管道運算子 (|>),它是一個反向應用運算子,類似于 Haskell 中的 (&) 運算子。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/498433.html