在没有括号的Haskell中输出列表,并在一个范围内输出?

AJJ*_*AJJ 1 haskell list

我有一个返回列表的函数,调用它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]]
Run Code Online (Sandbox Code Playgroud)

Mat*_*hid 7

你可以做点什么

list_to_string = unwords . map show
Run Code Online (Sandbox Code Playgroud)

获取所需的输出格式.然后而不是做

print [1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)

你可以做

putStrLn $ list_to_string $ [1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)

哪个应该显示你想要的.

编辑:至于打印范围,请尝试以下方法:

main = do
  n <- readLn :: IO Int
  mapM_ (putStrLn . list_to_string) [ f i | i <- [1..n] ]
Run Code Online (Sandbox Code Playgroud)