Tôi đã đọc here, và tôi nhận thấy rằng, ví dụ, nếu tôi có các định nghĩa chức năng sau:hàm hợp Generic trong Haskell
a :: Integer->Integer->Integer
b :: Integer->Bool
Các biểu thức sau đây là không hợp lệ:
(b . a) 2 3
Khá lạ là các chức năng của bố cục phải có chỉ một tham số.
Hạn chế này có phải là do một số vấn đề trong việc xác định nguyên tắc chung nhất trong Haskell hoặc có lý do nào khác không?
Tôi mới sử dụng Haskell, vì vậy, tôi đang đặt ra những câu hỏi vô dụng.
Ồ, đó là mát mẻ và có ý nghĩa. Cảm ơn! – hsknew
Và nếu có Integer-> Integer-> Integer-> Integer, làm thế nào tôi có thể thiết lập tham số thứ ba, và để cho hai biến 'khác'? – hsknew
Bạn có thể làm '(b. A 1 2) 3', nói. Vấn đề là 'thứ' được tạo ra bởi 'a' phải nằm trong tên miền của' b' (hoặc gần như nói, cùng loại) – Phil