Risp
Languages and libraries
lisp interpreter
SHOW HN2019
314points
84comments
#92of 2,195 in 2019
Top 5%of 2019 by points
How HN took it
CuriousMostly questions and neutral comments
3 positive, 23 neutral or asking, 0 mixed, 10 critical, out of 36 comments about the project. Thread score -0.15.
Idea: 1 for, 4 againstExecution: 0 for, 4 againstDesign: 1 for, 2 against
The thread, comment by comment
Each row is a top-level comment and its replies, in HN's order. Select a cell to open that comment on HN.
positive neutral or mixed critical about another commenter or something else the maker
What HN said
What people liked
Good read; Norvig-style walkthrough praised
From 2 comments
I thought this was just going to be another forgettable "X implemented in Y", but this is actually a Rust-flavored version of Peter Norvig's classic "(How to Write a (Lisp)…
kibwen on HN> Finally, I have to say, I loved using Rust. It’s the least mental overhead I’ve had to maintain with a systems language, and it was a blast to use. This mirrors my experience…
dataking on HN
Objections
Errors stringified into RispErr::Reason(String) lose information
From 2 comments
A bit of feedback to the author: I cringe really, really hard when I see things like: ``` #[derive(Debug)] enum RispErr { Reason(String), } ``` One of the beauties of Rust's type…
thenewwazoo on HNBecause I'm on my soapbox, I'll also recommend implementing ToString[1] right off the bat, too. That way you can print out useful error messages immediately. For example, if your…
thenewwazoo on HN
Tokenizer uses replace and split, which is fragile
From 1 comment
`tokenize` function looks weird. Why use replace and then split? How would you extend this to stirngs (which might contain "()" chars)? It might be OK in a toy example, but it…
kovrik on HN
Requests
Rename the project to Lust
From 3 comments
I would’ve went with “Lust”...
kaycebasques on HNShould've gone with Lust it's way better than Risp.
slowrabbit on HNWhy is this named Risp? Lust is much better...
kristianov on HN
Questions
How would RispExp support circular lists and GC?
From 2 comments
> `List(Vec<RispExp>)` The big question when implementing a runtime for a Lisp-like language in Rust is how the interpreter will interact with the GC. It looks like this project…
firethief on HNRispEsp is a tree using value semantics. How will RispExp evolve to support e.g. circularly linked lists? How will that interact with Rust's ownership requirements?
ridiculous_fish on HN
Alternatives named
Carp
From 1 comment
If you like Rust and Lisp this is also a cool project: https://github.com/carp-lang/Carp.
msvan on HN
ketos
From 1 comment
There is also quite older, but still maintained other implementation https://github.com/murarth/ketos
hauleth on HN
scheme.rs
From 1 comment
I'm partial to scheme.rs [edit] Which apparently does exist: https://github.com/isamert/scheme.rs
hcs on HN