[英]Why does Haskell use -> instead of =?
為什么Haskell使用“ - >”似乎只能使用“=”?
例如,這有什么問題?
take m ys = case (m,ys) of
(0,_) = []
(_,[]) = []
(n,x:xs) = x : take (n-1) xs
要么
(\x = x * x)
寫作會很不幸
(0, _) = []
因為那不是真的。
在羅伯特·雷科德(Robert Recorde)的傳統中,我們只在我們打算讓左手邊與右手邊相等時才嘗試編寫方程式。 所以我們寫
dup x = (x, x)
使dup x
等於(x, x)
,或
dup = \ x -> (x, x)
使dup
等於將x
映射到(x, x)
的函數,但不是
\ x = (x, x)
因為沒有辦法使x
等於(x, x)
。
當我們允許“墮落”時,我們只會略微偏離傳統,例如,
f 0 = 1
f n = 2 * f (n - 1)
但只是在第二行有一個無聲的“否則”的意義上。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.