"Birinci sınıf modüller" in OCaml 3.12'de geldiğini duydum. Hangi avantajları sunacaklar? Hangi çocukların çocukları daha kolay olacak? Hangi sorunu çözmeye çalışıyorlar? Basit bir örnek yeterlidir.OCaml 3.12'deki birinci sınıf modüller: Ne tür şeyler kolaylaştıracak (veya mümkün)?
cevap
Yalnızca bir olası uygulama var, ancak birinci sınıf modüller, temel olarak varolan bir türü ve bu türü kullanan bir değeri paketleyen bir modülle, varolan türleri kodlamayı kolaylaştırır). Örneğin, Alain Frisch (dyntypes üzerinde çalışmak Alain Frisch alınan kod: http://caml.inria.fr/cgi-bin/viewvc.cgi/ocaml/branches/dyntypes/stdlib/dyntypes.ml?view=markup) Dinamik türleri üzerinde çalışmak görün
module type DYN = sig
type t
val x: t
val t: t ttype
end
type dyn = (module DYN)
let dyn (type s) t x =
let module M = struct
type t = s
let x = x
let t = t
end
in
(module M : DYN)
burada fikir "ttype" bu tür somut temsili, Int ile cebirsel veri türü olmasıdır , Float kurucuları ve benzerleri, ve burada, türü gizlenmiş, ancak bu türden somut bir temsili taşıyan, örneğin daha güvenli bir serileştirme/serileştirme elde etmek için kullanabileceğiniz bir değere sahipsiniz.
Belki biraz geç, ama yeni kağıt First-class modules: hidden power and tantalizing promises tamamen konuyla ilgili. Bu birinci sınıf modüller etrafında bir yemek tarifleri/inciler seti, Oleg Kiselyov (oleg) ve Jeremy Yallop (yazar, örneğin, Deriving projesinin).
- 1. Birinci sınıf listeye atla
- 2. Amatör bir programcı ne tür şeyler üzerinde yoğunlaşmalı?
- 3. OCaml harici beyannamede% ne demektir?
- 4. OCaml modülleri ve performans
- 5. Python modülleri birinci sınıf vatandaşlar mı?
- 6. “İşlevler birinci sınıf bir tiptir” hızlı mı?
- 7. Sınıf durumu geçersiz olduğunda ne tür bir hata çıkıyor?
- 8. OCaml
- 9. OCaml
- 10. Laravel 4 - Paket veya "modüller"?
- 11. MVVM Işık Mesaj tipleri: Ne zaman ne tür her tür?
- 12. NavigateURL'de ne tür değerler iletilebilir?
- 13. OCaml
- 14. OCaml
- 15. GHCI, tür veya değer adlarını mı soruyor?
- 16. Gömülü modda OCaml kullanmak mümkün mü?
- 17. OCaml
- 18. OCaml
- 19. Ocaml
- 20. Ocaml
- 21. OCaml
- 22. OCaml içindeki nesnelerdeki nesneler
- 23. Ocaml Opsiyonu
- 24. TypeScript'te bir sınıf içinde bir tür (String literal union) tanımlamak mümkün mü?
- 25. Ne tür trafik korsanları yakalayabilir?
- 26. Ne tür bir istisna EEMessageException?
- 27. Bu ne tür bir kod?
- 28. Ocaml hashkolleri
- 29. Neden birinci sınıf bir işlevin türü byrefs içermiyor?
- 30. Haskell lens kütüphanesiyle, alıcıları "birinci sınıf" olarak nasıl ele alabilirim?
Güzel. Gördüğüm aynı kavramın başka bir uygulaması: varoluşsal bir türü, bir nesneyi diğerine “bağlayabilme” ve tip sisteme göre kontrol etme yeteneği ile birleştirmek. Örneğin. Bir veritabanı bağlantısı için bir imleç oluşturun ve ardından farklı bir bağlantıyla kullanılamadığını kontrol edin. Tatlı! –