簡體   English   中英

為什么Haskell使用 - >而不是=?

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

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