考慮到Haskell(GHC)中的隱式參數,我有一個問題。我有一個函數˚F,即假設隱含參數X,並想通過應用F到封裝它在上下文到克隱式參數和函數
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'
有人可以告訴我,我做錯了什麼?
(我試圖讓WordNet的接口Haskell的工作 - http://www.umiacs.umd.edu/~hal/HWordNet/ - 它使用在上述方式隱含參數,和我不斷收到錯誤,作爲一個以上,當我嘗試編譯)
嗨,我有'{ - #LANGUAGE ImplicitParams# - }'我是我的文件的頂部,但它仍然產生相同的錯誤。有什麼建議麼? PS:我使用GHC版本。 7.4.1 – niklascp
看我的編輯。我複製並粘貼你的代碼並添加'LANGUAGE'編譯指示,工作正常。它也應該適合你。如果這個工作正常,但你擴大的案例不(HWordNet),那麼這是一個單獨的問題。 –
嗨,感謝您的更新 - 我可以評估'g(* 3)4'沒有問題,但我無法評估'g f 4',因爲我期望我能 - 你能嗎? – niklascp