String 如何在Haskell中将数字列表转换为字符串列表

String 如何在Haskell中将数字列表转换为字符串列表,string,haskell,integer,converter,String,Haskell,Integer,Converter,如何在Haskell中将数字列表转换为字符串列表(一个字符串=列表中的一个数字) [Int]->[String] 示例:[1,2,3,4]->[“1”、“2”、“3”、“4”]如果您有一个函数f::a->b,那么map f:[a]->[b]将f应用于所有列表元素 函数show可以转换字符串表示中的“可打印”类型。特别是,show的可能类型之一是Int->String 使用这两种工具。使用列表单子: f :: [Int] -> String f xs = do x <

如何在Haskell中将数字列表转换为字符串列表(一个字符串=列表中的一个数字)

[Int]->[String]


示例:[1,2,3,4]->[“1”、“2”、“3”、“4”]

如果您有一个函数
f::a->b
,那么
map f:[a]->[b]
f
应用于所有列表元素

函数
show
可以转换字符串表示中的“可打印”类型。特别是,
show
的可能类型之一是
Int->String

使用这两种工具。

使用列表单子:

f :: [Int] -> String
f xs = do 
         x <- xs
         return $ show x 

如果需要编写函数来打印0中的元素,这可能是另一种解决方案

cp_log :: (Show a) => [a] -> String

cp_log [] = ""
cp_log [x] = (show x)
cp_log (x:xs) = (show x) ++ ", " ++ cp_log xs
下面是一个完整的示例

cp_log :: (Show a) => [a] -> String
    
cp_log [] = ""
cp_log [x] = (show x)
cp_log (x:xs) = (show x) ++ ", " ++ cp_log xs

quick_sort :: (Ord a) => [a] -> [a]
quick_sort [] = []
quick_sort (x:xs) =
  let smaller = quick_sort [a | a <- xs, a <= x]
      bigger = quick_sort [a | a <- xs, a > x]
  in smaller ++ [x] ++ bigger

main =
  let sorted = (quick_sort [4, 5, 3, 2, 4, 3, 2])
  in putStrLn (cp_log sorted)
cp\u日志::(显示a)=>[a]->字符串
cp_日志[]=“”
cp_日志[x]=(显示x)
cp_log(x:xs)=(显示x)++”,“++cp_log xs
快速排序::(Ord a)=>[a]->[a]
快速排序[]=[]
快速排序(x:xs)=

如果你有一个
int->string
,你可以使用`map:(a->b)->[a]->[b]`生成一个函数
[int]->[string]
,使用`map:(a->b)->[a]->[a]->[b]`只需要简单的
映射显示
,你所得到的大致相当于
插入“,”.map show
。因此,您的答案无法回答问题,同时又过于复杂。请注意下一次的问题:)哦,对不起:)我只想发布一个手工方法,但您是对的,这没有错,请接受我的道歉。您的haskell令人印象深刻,我认为您的你可以帮助某人解决悬而未决的问题,让我们忘掉这个古老的问题:)别担心@madbird,如果你删除否决票,我会很高兴:)不幸的是,我的否决票在编辑答案之前是锁定的。添加几行,或者,也许,用
where
替换
let
,这样我就可以删除我的投票。
cp_log :: (Show a) => [a] -> String
    
cp_log [] = ""
cp_log [x] = (show x)
cp_log (x:xs) = (show x) ++ ", " ++ cp_log xs

quick_sort :: (Ord a) => [a] -> [a]
quick_sort [] = []
quick_sort (x:xs) =
  let smaller = quick_sort [a | a <- xs, a <= x]
      bigger = quick_sort [a | a <- xs, a > x]
  in smaller ++ [x] ++ bigger

main =
  let sorted = (quick_sort [4, 5, 3, 2, 4, 3, 2])
  in putStrLn (cp_log sorted)