2011-04-29 38 views

回答

7

你可以用intercalateData.List

showList :: Show a => [a] -> String 
showList = intercalate ", " . map show 

map show每個元素轉換成與引號它的字符串表示(和任何內部引號正確轉義),而件和膠它們之間插入intercalate ", "逗號和空格在一起。

+0

當我這樣做,我得到「\」一個\「,\」兩個\「」.... – Tom 2011-04-29 09:24:11

+1

@Tom:這就是解釋器如何顯示結果字符串給你。嘗試使用'putStrLn(showList [「one」,「two」,「three」])來代替打印。爲了便於比較,請參閱只輸入'「hello」'和'putStrLn「hello」'之間的區別。 – hammar 2011-04-29 09:25:56

+0

@nanothief:在這裏使用'show'來產生內部引號。混淆的產生是因爲解釋者在結果上調用'show' _again_來顯示它。 – hammar 2011-04-29 09:48:34

相關問題