serapeum
hy
serapeum | hy | |
---|---|---|
7 | 52 | |
410 | 4,778 | |
- | 0.6% | |
7.9 | 9.2 | |
3 days ago | 5 days ago | |
Common Lisp | Python | |
MIT License | GNU General Public License v3.0 or later |
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.
serapeum
-
Steel Bank Common Lisp
> both are dynamic languages with types added later in?
Common Lisp has always had types and type declarations (e.g. `the` in the hyperspec[1]) as it's part of the specification. It was not added later as far as I know.
However, `declaim` and `declare` were left very underspecified so they tend to be very implementation-specific, though there are libraries that make types more portable[2][3].
[1] http://www.lispworks.com/documentation/HyperSpec/Body/s_the....
[2] https://github.com/lisp-maintainers/defstar
[3] https://github.com/ruricolist/serapeum/blob/master/REFERENCE...
-
LISP as a learning tool
From python in lisp I want the convenience for quick scripting, which lisp doesn't have by default but of course it can be added. For example for let's you easily iterate over lines of a file or files in a directory, or anything else you add. serapeum add's convenient syntax for hashmaps (dict and @), and threading macro and plenty of utility functions, defclass-std does the boilerplate of :initarg and :accessor for you for the common cases of class declarations.
-
I'm considering moving from Clojure to Common Lisp
+1 for Serapeum: https://github.com/ruricolist/serapeum/blob/master/REFERENCE.md
-
Compile-time exhaustiveness checking in Common Lisp with Serapeum
Serapeum is an excellent CL library, with lots of utilities. You should check it out. It provides a case-like macro, to use on enums, that warns you at compile-time if you handle all the states of that enum.
-
looking for Advent of Code Tips
Since Alexandria was mentioned may I mention Serapeum as well. Don't know if it's needed for AoC but it may be worth a look. Serapeum seems to get not enough mentions/ attention IMO.
-
Common Lisp intermediate book recommendation
Re: libraries; I'd like to mention serapeum which contains a ton of general purpose utilities.
-
SICL: A New Common Lisp Implementation
I consider Serapeum to be a revamp of the Common Lisp standard: https://github.com/ruricolist/serapeum/blob/master/REFERENCE.... This provides a bunch of new features and idioms including ideas borrowed from newer languages like Clojure.
Great example of "growing a language" as a long-term evolutionary process that doesn't require changing earlier specifications in incompatible ways.
hy
- A dialect of Lisp that's embedded in Python
-
How to Write a (Lisp) Interpreter (In Python)
Not exactly the same (doesn't embed into the source like this did), but I believe Hylang[0] is the best Lisp package available for modern Python.
[0] https://github.com/hylang/hy
-
Sapling: A highly experimental vi-inspired editor where you edit code, not text
Isn't that a bit what hy (https://hylang.org/) tries to do ? AIUI it is a lisp interacting directly with the AST of Python, allowing seamless interop: Python modules can be used from hy and vice versa, everything is transparent.
- Hylang, a Lisp dialect embedded in Python
-
Hissp
I’ve been keeping loose tabs on this and Hy[1] for a while, but I’ve had some trouble figuring out the major differences between them and the use-cases for either. Would love to see an in-depth comparison in the form of a blog post sometime (though maybe the answer here is to do the research and write one up myself).
1: https://hylang.org
- Hy
-
Ask HN: Is SICP/HtDP still worth reading in 2023? Any alternatives?
“Python is for scientists. Lisp is for engineers.”
Then what does that make Hy language?
https://hylang.org/
Re Languages with lots of example code and LLM’s
With translators or things like Hy lang, one could get the LLM’s to solve your problem in Python before converting it to another form. Then, you just need a translator. If lacking one, it’s easy to translate by hand.
The practicality of this concept will probably vary by use case. My experiments had GPT doing sketching, implementations, boilerplate, and even porting Python to Rust. A legally-clear LLM trained on multiple languages could probably be fine-tuned to do Python to LISP conversions. If not, Hy might be a stepping stone, too.
-
Sharing Saturday #469
You could say so: I've been maintaining the compiler since 2016 ;). Infinitesimal Quest 2 + ε (SQ) exists more to advance Hy than for its own sake.
- What if: python without commas
-
Best implementation of CL for learning purposes
If you are using Python - you might find Hylang (https://hylang.org) interesting.
What are some alternatives?
trivial-cltl2 - Portable CLtL2
hissp - It's Python with a Lissp.
cerberus - Common Lisp Kerberos v5 implementation
Fennel - Lua Lisp Language
playwright-java - Java version of the Playwright testing and automation library
babashka - Native, fast starting Clojure interpreter for scripting
defstar - Type declarations for defun et all. Just a mirror. Ask for push acess!
eso-light-attack-weave - This is a macro for the game Elder Scrolls Online
CIEL - CIEL Is an Extended Lisp
Carp - A statically typed lisp, without a GC, for real-time applications.
quicklisp-client - Quicklisp client.
hebigo - 蛇語(HEH-bee-go): An indentation-based skin for Hissp.