List 如何在整个列表上使用Text.Printf
如何将printf与列表上的List 如何在整个列表上使用Text.Printf,list,haskell,printf,List,Haskell,Printf,如何将printf与列表上的printf“%d%d\n”等特定格式一起使用? 例如,printf“%d%d%d\n”,[1,2,3] 我的想法是基于要使用单独函数打印的列表创建一个字符串,并将其解析为printf。问题是我无法让printf将列表元素视为单独的参数。我遗漏了什么?您将任务拆分为几个较小的任务。您编写的函数可以处理单双: show2Decimals :: Double -> String show2Decimals x = printf "%+.2f" x 之后,您可以使用
printf“%d%d\n”
等特定格式一起使用?
例如,printf“%d%d%d\n”,[1,2,3]
我的想法是基于要使用单独函数打印的列表创建一个字符串,并将其解析为
printf
。问题是我无法让printf将列表元素视为单独的参数。我遗漏了什么?您将任务拆分为几个较小的任务。您编写的函数可以处理单双:
show2Decimals :: Double -> String
show2Decimals x = printf "%+.2f" x
之后,您可以使用标准函数映射列表中的所有数字,并将生成的字符串拼接在一起:
showDoubleList :: [Double] -> String
showDoubleList xs = unlines (map show2Decimals xs)
您将任务分成几个较小的任务。您编写的函数可以处理单双:
show2Decimals :: Double -> String
show2Decimals x = printf "%+.2f" x
之后,您可以使用标准函数映射列表中的所有数字,并将生成的字符串拼接在一起:
showDoubleList :: [Double] -> String
showDoubleList xs = unlines (map show2Decimals xs)
你真的需要打印吗?告诉我们更多关于你的实际目标。(“在列表上使用printf
是一个计划,而不是目标。)也许unwords。map show
对您来说已经足够了。我想打印一个浮动列表,作为文本,末尾带有\n
,数字必须是“%+.2f”格式。@BillMack最简单的方法是将printf分别应用于列表中的每个成员,然后将所有短字符串拼接在一起。类似于interlate”“(map(printf“%+.2f”)[1,2,3::Float])
是的,这就是我要找的!谢谢:)@MichaelSteeleinterlate“
的拼写更好unwords
。你真的需要printf
?告诉我们更多关于你的实际目标。(“在列表上使用printf
是一个计划,而不是目标。)也许unwords。map show
对您来说已经足够了。我想打印一个浮动列表,作为文本,末尾带有\n
,数字必须是“%+.2f”格式。@BillMack最简单的方法是将printf分别应用于列表中的每个成员,然后将所有短字符串拼接在一起。类似于interlate”“(map(printf“%+.2f”)[1,2,3::Float])
是的,这就是我要找的!谢谢:)@MichaelSteeleinterlate“
的拼写更好unwords
。