lazy-seq
cloture
lazy-seq | cloture | |
---|---|---|
1 | 8 | |
10 | 376 | |
- | - | |
0.0 | 4.5 | |
12 months ago | 12 months ago | |
Fennel | Common Lisp | |
MIT License | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
lazy-seq
-
Clojure, but without the JVM?
I believe there are more projects than that. I, personally, invest a lot of time into Fennel, as it's very minimal, and Lua runtime is very easy to extend as you like. I've implemented Clojure-like library for lazy sequences, and the cljlib - a library that ports a lot of functions and macros from clojure.core namespace.
cloture
-
Trouble defining a Lisp-1 DSL in Common Lisp
For reference, and to show that it's possible, you might be interested in how I did this for Cloture (Clojure in CL): https://github.com/ruricolist/cloture/blob/master/clojure/core.lisp
-
The Jank Language: LLVM Hosted Clojure
Why not use something like https://github.com/ruricolist/cloture (a Clojure "adapter" that runs on Common Lisp) if you want that?
- Cloture – Implementation of Clojure in Common Lisp
- ClojureRS – Clojure interpreter implemented in Rust
- Clojure – Differences with Other Lisps
-
Clojure, but without the JVM?
Clojure on Common Lisp: https://github.com/ruricolist/cloture
- Seeking clojure-styled concurrency operators for common lisp
-
On Repl-Driven Programming
It does not offer the full experience. It has no breakloop and no ability to browse and edit the live running environment. It has no ability to rummage around inside the dynamic environment of a suspended function call, much less to redefine the suspended function or the types of its parameters, nor to restart the suspended call. Indeed, the JVM makes some of that stuff really inconvenient to do.
You cannot do everything from the Clojure repl in the way you can from a Common Lisp repl or from a Smalltalk worksheet.
I don't know that the Clojure language design forbids it; you might, for example, implement Clojure on top of a Lisp or Smalltalk environment and hook up their tools to Clojure through its interop. That might work, and ruricolist has been working on such an implementation called Cloture:
https://github.com/ruricolist/cloture
But existing Clojure implementations don't have the full set of tools.
What are some alternatives?
clojerl - Clojure for the Erlang VM (unofficial)
awesome-clojure-likes - Curated list of Clojure-like programming languages.
etaoin - Pure Clojure Webdriver protocol implementation
fennel-cljlib - Port of clojure.core namespace to Fennel (mirror)
janet - A dynamic language and bytecode vm
babashka - Native, fast starting Clojure interpreter for scripting
clj-chrome-devtools - Clojure API for controlling a Chrome DevTools remote
planck - Stand-alone ClojureScript REPL
Fennel - Lua Lisp Language
ClojureRS - Clojure, implemented atop Rust (unofficial)