Ví dụ, làm thế nào tôi có thể viết một phiên bản map
mà sẽ làm việc với các chức năng đa hình trong typed vợt? Tôi sử dụng một id
chức năng đơn giản định nghĩa là:Làm cách nào để viết các hàm bậc cao hơn có chức năng đa hình như các đối số trong Typed Racket?
(: id : (All (A) A -> A))
(define (id x) x)
Khi tôi cố gắng để ánh xạ nó trên một danh sách tôi nhận được một lỗi:
> (map id '(1 2 3))
Type Checker: Polymorphic function `map' could not be applied to arguments:
Types: (-> a b ... b c) (Listof a) (Listof b) ... b -> (Listof c)
(-> a c) (Pairof a (Listof a)) -> (Pairof c (Listof c))
Arguments: (All (A) (-> A A)) (List One Positive-Byte Positive-Byte)
Expected result: AnyValues
in: (map id (quote (1 2 3)))
Điều này thật đáng buồn. Cảm ơn bạn. –