2017-11-18 69 views
3

鑑於年底追加:哈斯克爾採取第一個字符名單,並在該列表

mangle :: String -> String 

,我想要做的事,如:

mangle xs = head xs -- works if you change typesig to [a] -> a 

但:

mangle xs = tail xs ++ head xs -- won't work at all! 

會喜歡在列表末尾添加列表的第一個字符,切割第一個字符。

+0

'[頭XS]'將字符轉換爲字符串,這樣你就可以添加,但你的函數是不是安全。 –

+3

切勿使用'head,tail',而是使用模式匹配。 – chi

+0

@Michael Kohl:謝謝!這非常簡單。應該明白這一點。 – Madderote

回答

6

一個非常直接的解決辦法是這樣的:

mangle :: String -> String 
mangle [] = [] 
mangle (x:xs) = xs ++ [x]