[英]rules of operator's $ usage in haskell
我嘗試使用$
運算符,然后發現一個奇怪的地方,我不知道發生了什么。
f = double $ 3+4
但這不是
f xs = xs !! $ length xs - 1
運算符$
只能出現在函數名稱之后而不出現在運算符之后嗎? 如果是這樣,有一種方法可以在不帶括號的情況下編寫以下函數
f xs = xs !! (length xs - 1)
您不能將兩個運算符彼此相鄰,這是無效的語法。 這適用於所有操作員。 所以xs !! $ length xs - 1
xs !! $ length xs - 1
就是行不通的。 在沒有采取一些不值得的技巧並使代碼的可讀性降低的情況下,沒有一種擺脫該語句中的括號的好方法。
不過, $
運算符不必出現在函數名稱之后
> let add x y = x + y
> add 1 $ add 2 $ add 3 4
Haskell中綴表示法有問題,請避免這樣
f xs = (!!) xs $ length xs - 1
括號將中綴運算符轉換為前綴函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.