Câu hỏi này là dành cho những người biết cả hai Haskell (hoặc bất kỳ ngôn ngữ chức năng khác hỗ trợ các loại cao-kinded) và C++ ...loại cao-kinded với C++
Có thể mô hình các loại kinded cao sử dụng Mẫu C++? Nếu có, thì làm thế nào?
EDIT:
Từ this trình bày bởi Tony Morris:
cao hơn bậc Polymorphism:
Ngôn ngữ như Java và C# có bậc nhất polymorphism vì họ cho phép chúng tôi tóm tắt về các loại. ví dụ.
List<A>
có thể có chức năngreverse
hoạt động trên bất kỳ loại phần tử nào (sốA
).Ngôn ngữ lập trình thực tế khác và loại hệ thống cho phép chúng tôi tóm tắt về các nhà xây dựng kiểu như .
Tính năng này được gọi là đa hình cao cấp hơn (hoặc cao cấp) đa hình.
Ví dụ:
Pseudo-Java với một ký hiệu được phát minh cho bậc cao đa hình
interface Transformer<X, Y> {
Y transform(X x);
}
interface Monad<M> { // M :: * -> *
<A> M<A> pure(A a);
<A, B> M<B> bind(Transformer<A, M<B>> t, M<A> a);
}
Có thể bạn có thể đưa ra ví dụ về mục tiêu của mình. Đối với chúng tôi, những loại không-biết-chức năng-thành ngữ-rất tốt sẽ giúp ích cho bạn. – GManNickG
@GMan: Tôi có thể đưa ra một ví dụ, nhưng tôi biết rõ nó sẽ khó có ý nghĩa gì ngoại trừ những người biết điều đó. Vì vậy, tôi không bận tâm để bao gồm một ví dụ. –
@Venkat: Ý tôi là mục tiêu, bức tranh lớn hơn của bạn là gì? Bạn muốn loại có mức độ cao hơn cho: __________. Ngoài ra, một ví dụ rất đơn giản với các bình luận sẽ vẫn tốt hơn là không có gì. :) – GManNickG