2017-09-28 33 views
3

我是哈斯克爾的新手。 有人給我一個符號和一個公式: m & n = n m 但是「&」不能被ghci讀取,我們搜索了互聯網並且沒有找到任何信息。 誰能告訴我&是什麼意思?haskell中的「&」是什麼意思?

+4

請發佈完整的代碼片段。 –

+1

此外,這在ghci中有效。它只是構造一個函數'(&)'。 –

+0

我同意威廉;也許你忘了'let'? '讓m&n = n m',然後'5&(+1)'按預期打印6。 –

回答

2

(&)運算符在Data.Function包中定義。要在ghci中使用它,您必須import Data.Function

然後,您可以使用它與您發佈公式給出的含義。

> pi & cos 
-1.0 

同:

> cos pi 
-1.0 
6

這是一個沒有任何特殊含義的標識符,所以它意味着任何你想要的。例如。在鏡頭&作爲flip ($)爲了方便,像這樣:

let x = (1,2) 
    & _1 +~ 1 
    & _2 +~ 2 

-- x = (2,4) 

這也符合你的m & n = n m定義(它們是當量)。任何其他圖書館都可以使用它,如果你使用use a better search engine,你會發現很多。

+6

順便說一句(正如Hayoo明確指出的那樣),'&'的使用實際上是在''base'包中,'Data.Function'中定義的(http://hackage.haskell.org/package/base- 4.10.0.0/docs/Data-Function.html#v:-38-)。即使在根本沒有任何鏡頭的項目中,我也經常使用這個操作員。 – leftaroundabout

+0

@leftaroundabout哦,從7.10.1開始。我從未注意到:) –