【问题标题】:display a list differently Haskell?以不同的方式显示列表 Haskell?
【发布时间】:2011-04-29 08:50:03
【问题描述】:

如果可以显示列表,我正在徘徊:

["one", "two", "three"]

显示为

"one", "two", "three"

需要为文件完成

谢谢

【问题讨论】:

    标签: list haskell


    【解决方案1】:

    您可以使用来自Data.Listintercalate 执行此操作

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

    map show 将每个元素转换为带有引号的字符串表示形式(以及任何正确转义的内部引号),而 intercalate ", " 在片段之间插入逗号和空格并将它们粘合在一起。

    【讨论】:

    • @Tom:这就是解释器向您显示结果字符串的方式。尝试使用putStrLn (showList ["one", "two", "three"]) 来打印它。为了比较,请查看仅输入 "hello"putStrLn "hello" 之间的区别。
    • @nanothief:这里打算使用show 生成内部引号。由于解释器在结果上调用show 再次 以显示它,因此出现了混淆。
    • 是的,你是对的,我没有仔细阅读他的要求。是我的 cmets 错了:S(我已经删除了它们,因为它们只会混淆)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-05
    • 2019-01-22
    • 1970-01-01
    • 2020-10-06
    相关资源
    最近更新 更多