我一直受列表工作方式的挑戰,並對整個(x:xs)概念感到困惑。我似乎沒有得到我的頭。試圖讓我的頭(x:xs)和列表?
例
select :: Ord a => a -> [a] -> [a]
select y [] = []
select y (x:xs)
| x < y = x : select y xs
| otherwise = select y xs
P.S.我確切地知道這個功能是幹什麼的,但是任何人都可以解釋這個過程(特別是包含奇怪的Ord a
和=>
標誌)?
任何有效的策略將不勝感激。
在此先感謝。伊恩。
謝謝您的回答@RHSeeger。不太清楚是什麼意思可訂購的編程方面雖然... – maclunian 2011-05-03 20:18:29
@maclunian:「這種類型的可訂購」簡單,你可以比較這類型,例如兩件事情與'<'。 – delnan 2011-05-03 20:19:48
通常,a =>符號表示約束。它的含義是,該類型必須是指定類型類型的一個實例(Ord執行比較,如<, >和<=)。實際上,只要你想使用未知類型的操作,就需要這種依賴關係。 – fuz 2011-05-03 20:21:12