Clojure'da uygulanan herhangi bir DSL (Domain Specific Language) var mı?Herhangi bir Clojure DSL var mı?
biraz eski Clojure, içinde
30
A
cevap
67
olabilir Clojure API ve DSL ve bu nedenle terim içeri yok aynı gizemini tutmaz arasında çok bulanık bir çizgi çizer Diğer diller. Lisp programcıları, programlarını DSL katmanları olarak yazma eğilimindedir;
- Enlive (HTML çiftleşmiş)
- LazyTest (Birim testi)
- :, burada (özel bir sırada) DSL-lik ekran önemsiz olmayan düzeylerini söyleyebiliriz birkaçıdır söyledikten fnparse (ayrıştırıcı jeneratör)
- Midje (test & alaycı)
- byte-spec (ikili-biçimleri)
- Vijual (grafik çizim)
- Trammel (kısıt programlama)
- Cascalog (Hadoop'un ağırlık datalog sözdizimi /)
- Incanter (R-benzeri çevre)
- Sandbar (HTML seansları, form, kimlik doğrulaması)
- ClojureQL (SQL)
- mini-kanren (gömülü mantık programlama)
- Leiningen (build aracı)
- sexpbot (eklenti kemer ile IRC bot)
7
3
Enlive yaratıcısı 2010 Clojure-conj konferanstan Clojure kullanarak DSL'lere nasıl oluşturulacağı hakkında düşünme üzerine bir kullanışlı konuşma, Christophe Büyük: http://blip.tv/clojure/christophe-grand-not-dsl-macros-4540700 (slaytlar here vardır) .
Ayrıca, DSL tasarımında olduğu gibi Ring tasarımını da sayabilirim. Ring'in yaratıcısı Mark McGranaghan'ın konuşmasına bakın: http://clojure.blip.tv/clojure/mark-mcgranaghan-one-ring-to-bind-them-4724955 (slides)
İlgili konular
- 1. GUI için herhangi bir Scala DSL var mı?
- 2. Scala'da herhangi bir Date/Time DSL utils var mı?
- 3. clojure ham dizesi var mı?
- 4. GET URL'sinde karmaşık filtreleri ifade etmek için herhangi bir REST API sorgu standardı/DSL var mı?
- 5. Normal İfadeler yazmak için bir DSL var mı?
- 6. Neden clojure işlevinin alabileceği parametrelerin sayısı için bir sınırlama var gibi görünüyor, bir clojure işlevi
- 7. iOS'ta Android'in herhangi bir karşılığı var mı?
- 8. Moodle için herhangi bir API var mı?
- 9. Herhangi bir ücretsiz php tarayıcı var mı?
- 10. "Vurgulu" kodun herhangi bir yolu var mı?
- 11. Herhangi bir guava genel görünümü var mı?
- 12. Herhangi bir ccTalk kütüphanesi var mı?
- 13. Herhangi bir FACEBOX alt türü var mı?
- 14. Herhangi bir standart silme functor var mı?
- 15. Herhangi bir GMP logaritma fonksiyonu var mı?
- 16. Tomcat'e herhangi bir IIS eşdeğeri var mı?
- 17. PLINQ'in herhangi bir faydası var mı?
- 18. Herhangi bir IPMI simülatörü var mı?
- 19. Herhangi bir sprite koleksiyonunu bilen var mı?
- 20. Çevresinde herhangi bir ScalaConsole var mı?
- 21. Herhangi bir getNLMultibutton kitaplığı var mı?
- 22. Herhangi bir python OpenID sunucusu var mı?
- 23. GC.disable'ın herhangi bir performans dezavantajı var mı?
- 24. Herhangi bir İşleme programı profiler var mı?
- 25. Protokollerdeki ipucu dönüş türlerinin Clojure içinde herhangi bir etkisi var mı?
- 26. Clojure'ın JVM belleği nasıl kullandığını görmek için herhangi bir clojure aracı var mı?
- 27. Clojure özel formlarını programlı olarak toplamanın bir yolu var mı?
- 28. Clojure var tanımlayan makro
- 29. Clojure testlerini çalıştırmak için Intellij IDEA eklentisi var mı?
- 30. Herhangi birinin javacc öğreticilerine bağlantıları var mı?
Oh wow! Teşekkürler David. – fogus
Harika! Bir DSL de bir DSL olarak da düşünebiliriz. – Jonas
Bir DSL'in 'iyi' örneği olmasa da, IRC bot'umun hata makrolarım, sexpbot eklentileri oluşturmak için bir DSL'dir. Kullanımdaki örneklerini src/sexpbot/plugins'te ve src/sexpbot/response.clj dosyasındaki gerçek uygulamada bulabilirsiniz. İsterseniz listeye ekleyebilirsiniz. Sadece eklemek için yepyeni bir cevap oluşturmamayı tercih ederim, çünkü seninki çok mükemmel. – Rayne