haskell中的函数包含2个函数调用

时间:2014-11-29 01:18:28

标签: function haskell functional-programming

如果我有一个需要调用2个函数的函数,那怎么能在Haskell中完成?

例如,如果我需要2个函数来打印列表中的前10个和后10个项目,并且我想从一个函数中调用这两个函数

2 个答案:

答案 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)))