我有一个返回列表的函数,称之为f n
。
如果我打印列表,它看起来像[1,2,3,4]
,而我希望它看起来像1 2 3 4
。
另外,我想要输出n
范围内的多个列表,第一行为f 1
,第二行为f 2
,... f n
为第n行。
我的f n
功能正常工作但无法让输出在我的生活中发挥作用。
目前的尝试:
main = do
n <- readLn :: IO Int
mapM_ putStrLn [f i | i <- [1..n]]
答案 0 :(得分:7)
您可以执行类似
的操作list_to_string = unwords . map show
获取所需的输出格式。然后而不是做
print [1, 2, 3, 4]
你可以做到
putStrLn $ list_to_string $ [1, 2, 3, 4]
应该显示你想要的方式。
编辑:至于打印范围,请尝试以下操作:
main = do
n <- readLn :: IO Int
mapM_ (putStrLn . list_to_string) [ f i | i <- [1..n] ]