[英]Haskell - type classes
我是Haskell的新手,我正在嘗試學習類型類的工作原理。 我在GHCi編譯器中輸入以下代碼。
let (+) :: Num a => a -> a -> a;
(+) a b = a+b;
代碼編譯,但每當我調用該函數時,它就會卡住,我必須按ctrl + c來停止進程。
我在這里做錯了嗎? 先感謝您!
你已經將a + b
定義為等於a + b
( +
綴運算符也可以寫成(+)
,在這種情況下它表現為普通的前綴函數;但你的左側仍然是相同的作為右手邊的東西)。
所以解釋器只是永遠旋轉,為了評估a + b
然后需要評估a + b
,然后需要評估a + b
,依此類推。
你從函數+
遞歸調用你的函數+
,就像你寫的一樣:
add :: Num a => a -> a -> a
add a b = add a b
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.