如何在整个列表中使用Text.Printf

时间:2016-04-18 22:55:15

标签: list haskell printf

如何在列表中使用具有printf "%d %d\n"等特定格式的printf? 例如,printf "%d %d %d\n", [1, 2, 3]

我的想法是根据我想要使用单独函数打印的列表创建一个字符串,并将其解析为printf。问题是我无法让printf将列表元素视为单独的参数。我错过了什么?

1 个答案:

答案 0 :(得分:2)

您将任务拆分为几个较小的任务。您编写处理单个Double的函数:

show2Decimals :: Double -> String
show2Decimals x = printf "%+.2f" x

之后,您可以使用标准功能映射列表中的所有数字,并将生成的字符串拼接在一起:

showDoubleList :: [Double] -> String
showDoubleList xs = unlines (map show2Decimals xs)