我在考虑 Haskell (GHC) 中的隐式参数时遇到问题。我有一个函数f,它假定隐式参数x,并希望通过将f应用于g将其封装在上下文中
f :: (?x :: Int) => Int -> Int
f n = n + ?x
g :: (Int -> Int) -> (Int -> Int)
g t = let ?x = 5 in t
但是当我尝试评估
g f 10
我收到x未绑定的错误,例如:
Unbound implicit parameter (?x::Int)
arising from a use of `f'
In the first argument of `g', namely `f'
In the second argument of `($)', namely `g f 10'
谁能告诉我,我做错了什么?
(我正在尝试让 Haskell 的 WordNet 接口工作 - http://www.umiacs.umd.edu/~hal/HWordNet/ - 它以上述方式使用隐式参数,并且我不断收到错误作为当我尝试编译时上面的一个)