在Haskell中将函数列表提取到独立函数中

时间:2015-01-02 11:36:02

标签: haskell

我有一系列函数fun1 $ fun2 $ fun3应用于变量var fun1 $ fun2 $ fun3 var。如何将此管fun1 $ fun2 $ fun3提取到独立函数fun = (fun1 $ fun2 $ fun3)中,该函数可以作为var应用于fun var

例如,我有一系列功能:BS.unpack $ JSON.encode var。我想从BS.unpack $ JSON.encode语句中将BS.unpack $ JSON.encode var提取到let fun = BS.unpack . JSON.encode,但我收到错误:

No instance for (JSON.ToJSON a0)
  arising from a use of `JSON.encode'
The type variable `a0' is ambiguous

我的功能提取有什么问题?

1 个答案:

答案 0 :(得分:6)

您正在寻找的是函数组合运算符.。其工作原理如下:

(f . g) x = f (g x) = f $ g x

因此,fun = fun1 . fun2 . fun3是您正在寻找的。