如果我有一个需要调用2个函数的函数,那怎么能在Haskell中完成?
例如,如果我需要2个函数来打印列表中的前10个和后10个项目,并且我想从一个函数中调用这两个函数
答案 0 :(得分:2)
我假设您有两个类型为
的函数f :: a -> IO ()
e.g。
printFirst :: Show a => [a] -> IO ()
printLast :: Show a => [a] -> IO ()
然后(因为IO是monad),你可以做
printBoth xs = printFirst xs >> printLast xs
或使用语法糖
printBoth xs = do
printFirst xs
printLast xs
答案 1 :(得分:1)
您可能希望将两个函数调用组合成一个组合字符串(或项列表)并返回它们或在同一个函数中输出它们。例如,要打印出两个函数的结果:
print ("First function: " ++ (show (f 1)) ++ " second function: " ++ (show (f 2)))