我有以下函数,它接受一个数字作为参数,应该返回一个字符串。
fun n = unwords [foldl (\acc x -> acc ++ (unwords[show x] ++ " ")) "" [1..nr] ++ "\n"| nr <- [n, n - 1..0]]
5的返回值是:
fun 5
"1 2 3 4 5 \n 1 2 3 4 \n 1 2 3 \n 1 2 \n 1 \n \n"
和
putStrLn $ fun 5
1 2 3 4 5
1 2 3 4
1 2 3
1 2
1
我的问题是从行首开始的空格从哪里出现?我对该函数的预期结果是
fun 5
"1 2 3 4 5 \n1 2 3 4 \n1 2 3\n 1 2\n 1\n\n