我需要打印 powerset 中的元素。现在我的代码的输出是这样的:
"a"
"ab"
"b"
"x"
"xy"
"xyz"
"xz"
"y"
"yz"
"z"
但是,我需要输出不带引号,如下所示:
a
ab
b
x
xy
xyz
xz
y
yz
z
这就是我所拥有的。我该如何修复它以获得正确的输出?
import Data.List
powerset = foldr (\x acc -> acc ++ map (x:) acc) [[]]
main = do
numCases <- getLine
repl $ (read numCases :: Int)
repl num = do
if(num == 0) then return ()
else do
size <- getLine
input <- getLine
let ret = tail $ sort $ powerset input
mapM (\x -> print x) ret
repl $ num-1
First (\x -> f x)
相当于普通的f
(几乎在所有情况下)通过 eta 减少。所以,你可以重写mapM (\x -> print x)
as mapM print
.
要删除引号,您应该使用该函数putStrLn
而不是print
功能。中的引号print
来自print = putStrLn . show
. show
是一个函数,它以一种可以(如果定义了合适的实例)读回的方式打印出值read
。因此,字符串上的引号是您不希望(或不需要)用于您的用例的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)