Xze*_*non 8 haskell functional-programming
在我寻求获得Haskell的进一步经验的过程中,我开始使用print和printf.
我想尝试打印一个数组(好吧,几个,但它只是一个开始),我想使用这种格式"%+.4f",这意味着我会得到:
+2.1234 or -1.2345
Run Code Online (Sandbox Code Playgroud)
但是我注意到使用printf打印数组非常困难,所以我尝试切换到打印.以这种方式打印列表似乎更容易,但我不确定如何使用与printf相同的格式打印列表元素.
我的列表看起来像这样:
[-1.2, 2.3, 4.7, -6.850399]
Run Code Online (Sandbox Code Playgroud)
两个变体应该执行相同的操作,使用 printf 的两种可能的返回类型:
putStrLn $ concatMap (printf "%+.4f\n") [-1.2, 2.3, 4.7, -6.850399]
mapM_ (printf "%+.4f\n") [-1.2, 2.3, 4.7, -6.850399]
Run Code Online (Sandbox Code Playgroud)
编辑:用于深度遍历两个列表:
putStrLn $ (concatMap . concatMap) (printf "%+.4f\n") [[-1.2, 2.3], [4.7, -6.850399]]
(mapM_ . mapM_) (printf "%+.4f\n") [[-1.2, 2.3], [4.7, -6.850399]]
Run Code Online (Sandbox Code Playgroud)