Metin kaynağı modülleri yüklemek için GHC API'sini veya başka bir şeyi kullanabiliriz, ancak haskell-src-exts Exp
type benzeri AST ifadeleri kullanabilir miyiz? Bu şekilde kod oluşturma ve ayrıştırma için zaman kazandırabiliriz.Haskell özet sözdizimi ifadesinin dinamik yüklenmesi
5
A
cevap
3
GHC API'sinin bir AST arabirimi ortaya çıkardığını sanmıyorum (yine de yanlış olabilir), ancak Template Haskell bunu yapıyor. Language.Haskell.TH
Exp
yapısını kullanarak ifadeler oluşturursanız, işlevleri/bildirimleri oluşturabilir ve bunlardan $(someTHFunction)
sözdizimini kullanarak yararlanabilirsiniz.
Oldukça büyük bir uyarı, TH'nin sadece derleme zamanında çalışmasıdır, bu yüzden her şeyi önceden oluşturmanız gerekir. Eğer TH'yi çalışma zamanında kullanmak istiyorsanız, ben şablonun AST'sini güzelce basmanız, sonra elde edilen dizgede GHC API'sini kullanmanız gerektiğini düşünüyorum.
İlgili konular
- 1. SQL Server "Yanlış sözdizimi" WHERE ifadesinin yakınında
- 2. Bir Özet Sözdizimi Ağacının parçaları nasıl tasarlanır?
- 3. Haskell ifadeleri için doğru sözdizimi
- 4. Angular2 Bir şablonun dinamik olarak yüklenmesi
- 5. HTML href dinamik sözdizimi
- 6. $ (...) ve [| ... |] bir Template Haskell işlevi kullanırken sözdizimi?
- 7. VB.NET lambda ifadesinin örnekleri
- 8. Haskell
- 9. == işlevinin aşırı yüklenmesi
- 10. Birden çok işleçlerin aşırı yüklenmesi
- 11. Doğrulama Özet
- 12. Bir özet,
- 13. Mac OSX Haskell 7.6.1 Haskell cabal aracı nasıl kurulur?
- 14. Bir C# özet yorum içinde Xml dize
- 15. POST'ların Tomcat'e Günlük Yüklenmesi
- 16. Meteor: Görüntülerin önceden yüklenmesi
- 17. stil sayfası koşullarının yüklenmesi
- 18. ITL uzantısının yüklenmesi
- 19. Memcache ve Memcached'in Yüklenmesi
- 20. Operatör aşırı yüklenmesi [] ve =
- 21. yüklenmesi nasıl verileri otomatik
- 22. WordPress eski sürümünün yüklenmesi
- 23. yüklenmesi nasıl görüntüler uyumsuz
- 24. Bir Linq ifadesinin çözümlenmesi
- 25. `_id 'ifadesinin bulunduğu yerde
- 26. Tensorflow'da tf.gather_nd ifadesinin açıklanması
- 27. ifadesinin tipi hızlı 2
- 28. CMake ENDIF ifadesinin amacı
- 29. VBScript'teki Const ifadesinin anlaşılması
- 30. _branch_match_id ifadesinin anlamı nedir?
Ayrıca, Şablon Haskell kaynak kodunu oluşturabilirim. Bu, AST ifadeleri oluşturma ve Haskell metin kaynağı oluşturma arasında uzlaşma olarak düşünülebilir. – modular