Tôi gặp vấn đề khi xem xét tham số ngầm trong Haskell (GHC). Tôi có một chức năng f, rằng giả định các tham số ngầm x, và muốn đóng gói nó trong một bối cảnh bằng cách áp dụng f-gTham số và chức năng ngầm định
f :: (?x :: Int) => Int -> Int
f n = n + ?x
g :: (Int -> Int) -> (Int -> Int)
g t = let ?x = 5 in t
Nhưng khi tôi cố gắng để đánh giá
g f 10
tôi nhận được một lỗi mà x không bị ràng buộc, ví dụ:
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'
Ai đó có thể cho tôi biết, tôi đang làm gì sai?
(tôi đang cố gắng để có được giao diện WordNet cho Haskell làm việc - http://www.umiacs.umd.edu/~hal/HWordNet/ - và nó sử dụng trên các thông số ngầm theo cách thức trên, và tôi tiếp tục nhận lỗi mô tả nêu trên khi tôi cố gắng để biên dịch nó)
Xin chào, tôi có '{- # LANGUAGE ImplicitParams # -}' i đầu tệp của tôi, nhưng nó vẫn mang lại cùng một lỗi. Bất kỳ đề xuất? PS: Tôi sử dụng GHC ver. 7.4.1 – niklascp
Xem chỉnh sửa của tôi. Tôi sao chép và dán mã của bạn và thêm 'pragma' LANGUAGE', hoạt động tốt. Nó cũng có tác dụng với bạn. Nếu điều này làm việc nhưng trường hợp mở rộng của bạn không (HWordNet) thì đó là một vấn đề riêng biệt. –
Xin chào, cảm ơn bạn đã cập nhật - Tôi có thể đánh giá 'g (* 3) 4' mà không gặp vấn đề gì, tuy nhiên tôi không thể đánh giá' g f 4' như tôi mong đợi - có thể không? – niklascp