2014-03-18 135 views
0

我正在嘗試使用反向函數編寫函數。 我想簡單的反向列表不喜歡haskell中的反向列表

reverse' :: [a] -> [a] 
reverse' [] = [] 
reverse' (x:xs) = reverse' xs ++ [x] 

但像 轉[A] =反轉[A]

當我使用反轉功能在Haskell

Prelude>[1,2,3] 
[3,2,1] 

當我試圖使用:

Prelude>rev [1,2,3] 

我得到了: *例外:2ost.hs:1:1-20:函數轉換中的非窮舉模式

請幫忙,我假設這是一些愚蠢的錯誤。

好吧,我知道: [a]並採取哈斯克爾爲1元列表中,解決方法是:

rev a = reverse a 
+0

使用'rev = reverse'' – Sibi

回答

2

這聽起來像你只是想爲reverse功能更短的別名。任何時候你想在Haskell中使用別名,你都可以很容易地創建它 - 只需要做一些類似於rev = reverse的事情。