2010-10-23 152 views
1

与此代码整数[字符串]

digs 0 = [] 

digs x = x `mod` 1000 : digs (x `div` 1000) 

例如:24889375
我们把结果[375,889,24]

我怎样才能使这个["375","889","024"]

回答

3
Prelude> import Text.Printf 
Prelude Text.Printf> map (printf "%03d" :: Int -> String) [375,889,24] 
["375","889","024"] 
+0

我怎么能把这个代码放在那里 – marco 2010-10-23 15:58:46

+0

@ifan:'map(printf“%03d”:: Int - > String)(挖掘24889375)'。 – kennytm 2010-10-23 16:00:35

+0

非常感谢您... – marco 2010-10-23 16:04:08

2

最地道方法是使用功能mapshow

Prelude> map show [375,889,24] 
["375","889","024"] 

show可用于将大多数值转换为字符串。 map将该函数应用于列表map的每个元素。

+0

提供[“375”,“889”,“24”]除了0 – marco 2010-10-23 16:54:31

+2

OK:'map(tail。show。(+ 1000))[375,889,24]' – Yitz 2010-10-23 20:56:37