[英]How to use the ($) operator correctly
這些行正確執行:
Prelude> 1 / (1 + 1)
0.5
Prelude> (/) 1 $ (+) 1 1
0.5
Prelude> (/) 1 $ 1 + 1
0.5
這不是:
Prelude> 1 / $ (+) 1 1
<interactive>:1:4: parse error on input `$'
為什么?
/是中綴運算符。 它要求雙方都有效表達。 1
是文字,因此是有效的表達式。 但是,在右側,您將立即擁有另一個infix運算符,該運算符必須在其前面加上另一個有效的表達式(並且1 /
不是有效的表達式,因為它缺少/運算符的右側參數)。 這就是解析器報告錯誤的原因(語法無效-有關詳細信息,請參見haskell報告;)
我相信這是因為$
是一個運算符,需要在其前面的函數。 在上一個示例中,表達式1 /
不會求值函數。 在這種情況下,解析器期望找到一個(數字)表達式作為/
運算符的第二個參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.