3 ms·
* Hiccup (https://github.com/weavejester/hiccup https://github.com/weavejester/hiccup) - DSL for generating html. You can easily mix it with other language cons
by dig1 6y ago
* Hiccup (https://github.com/weavejester/hiccup https://github.com/weavejester/hiccup) - DSL for generating html. You can easily mix it with other language constructs. There are similar libraries for Common Lisp and Scheme.
* Compojure-api (https://github.com/metosin/compojure-api https://github.com/metosin/compojure-api) - for building web applications. Mix json-like, hiccup and clojure constructs for web applications and autogenerate Swagger documentation.
* LOL book (https://letoverlambda.com/ https://letoverlambda.com/). Extreme examples what you can do with macros and code modifications during compile time.
* Seesaw (https://gist.github.com/daveray/1441520 https://gist.github.com/daveray/1441520) - library for building GUI apps with Clojure and Swing. Express GUI elements through declarative syntax. Qt and other libraries has similar feature, but is usually preprocessed with external tools.
* Scheme - MiniKanren (https://docs.racket-lang.org/minikanren/index.html https://docs.racket-lang.org/minikanren/index.html)
Most of these things in regular languages would require modifying language parser or compiler, or adding external tool that will parse that code and generate new one; e.g. like React is doing with html chunks. Also, many Scheme/CL/Clojure implementations provide functions to modify syntax table in runtime, allowing you to alter how things are parsed. That is extremely hard in regular languages due unregular syntax constructs.