[英]Operators in Haskell
我寫了以下函數
foldList :: (Double -> Double -> Double) -> [Double] -> Double
foldList op (x:t)
| t == [] = x
| otherwise = (op) x (foldList op t)
而且效果很好。 但是當我將最后一行更改為
| otherwise = x op (foldList op t)
它不再編譯了。 我對Haskell還是很陌生,但是我想在與運營商打交道時
a op b
相當於
(op) a b
我是否必須將op
視為正常功能? 如果是這樣,在什么情況下會被視為操作員?為什么不呢?
運算符是帶有符號名稱的函數。 默認情況下,它們是不固定的,您可以通過將其包裝在括號中來像其他函數一樣使用它們。
a + b (+) a b
帶有標識符名稱的函數(例如op
)可以通過用反引號將它們包裝起來而用作infix。
op a b a `op` b
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.