list - 在同一行中打印列表的元素

标签 list haskell

我是 haskell 的新手,我正在尝试在同一行中打印列表的元素。例如:

[1,2,3,4] = 1234 

如果元素是字符串,我可以用 mapM_ putStr ["1","2","3","\n"] 打印它 但他们不是......有人知道一个解决方案来制作一个函数并打印它吗?

我尝试dignum xs = [ mapM_ putStr x | x <- xs ]也是,但不起作用..

最佳答案

您可以使用 show::Show a => a -> String 将元素(此处为整数)转换为 String 的文本表示形式。

此外,我们可以使用 concat::[[a]] -> [a] 将元素列表的列表转换为元素列表(通过将这些列表连接在一起)。在 String 的上下文中,我们可以使用 concat::[String] -> String 将数字连接在一起。

所以我们可以使用:

printConcat :: Show a => [a] -> IO ()
printConcat = putStrLn . concat . map show

然后生成:

Prelude> printConcat [1,2,3,4]
1234

请注意,printConcat 函数限于数字(整数),它可以采用任何类型的对象,这些对象是 Show< 的类型实例 类。

关于list - 在同一行中打印列表的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44286949/

相关文章:

list - 如何在 Lisp 中打印嵌套列表中的最大值和最小值

c - 递归语言C中的链接列表添加元素

c# - 如何根据整数字段获取 List<> 中的项目?

Haskell:使用埃拉托斯特尼筛法的非详尽模式

haskell - 如何定义一个允许统一访问 Haskell 中不同记录的类?

haskell - 使用 Typeable 对不同类型进行有效的大小写匹配

list - 对象以 "s"结尾时的命名约定列表

html - 行中的嵌套列表 - CSS

haskell ->>= 和 concatMap 的区别

haskell - 硬件 : Unfolding a list in a specific way