簡體   English   中英

如何正確使用($)運算符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM