Live data from Hacker News

Lisp implemented in Rust macros

github.com

51–60 of 85 posts

Re: Lisp implemented in Rust macros

#52
post #3

I wish there was a well-supported Lisp in Rust, not just the macros. I wonder how much memory safety you would retain or lose being based in Rust. Is it even possible to leverage the borrow checker any any sane way?

Steel seems alright: https://github.com/mattwparas/steel There are other Lisps too ( https://github.com/alilleybrinker/langs-in-rust ) though I think they’re less actively maintained.

Steel has worked well for me as far as I’ve used it. It’s easy to get going and the partnership with Helix will surely give it a popularity boost over the next year or so.

Re: Lisp implemented in Rust macros

#54
post #7

Greenspun's tenth rule strikes again! https://en.wikipedia.org/wiki/Greenspun%27s_tenth_rule

What defines "sufficiently complicated" I wonder? Seems like a shit definition.

My experience is: once you have enough different FSM and reducers that you need to abstract them, the 'sufficiently complicated' criterion is made.

Re: Lisp implemented in Rust macros

#56
post #27

Everyone is supposed to be cheering for how "fun" it is, but every time I see anything like that I cannot help but think, that I hate the fact it can be implemented in Rust. It never truly was a simple language, but I think it started as something way more manageable than what it has become.

Nah, it really takes very little for something like this to become possible. I bet you could do it with C macros, which are supposedly simple.

(I checked; I win this bet: https://github.com/kchanqvq/CSP )

Re: Lisp implemented in Rust macros

#57

Earlier quoted context omitted.

It would, but lisp has prefix operators, so you wouldn’t have to worry about it getting confused.

Although in a Lisp such as Scheme, you could pass around the negation operator in something like (map - '(1 2 3)), so it would be a valid concern that it might clash.

The problem with that is that there are spaces between map, -, and '(1 2 3). The only way to get spaces into a name is by using vertical bars:

  (defvar |do i 10| 1.100)

Re: Lisp implemented in Rust macros

#59

Earlier quoted context omitted.

Pretty sure it applies to Common Lisp itself too.

The corollary to Greenspun’s rule is that any sufficiently complicated Common Lisp program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Prolog.

It would be fun if it was "half Prolog, half Common Lisp"

Re: Lisp implemented in Rust macros

#60

Earlier quoted context omitted.

Pretty sure it applies to Common Lisp itself too.

The corollary to Greenspun’s rule is that any sufficiently complicated Common Lisp program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Prolog.

I've now used both professionally. I look forward to hopefully using both in the same project. Though not holding my breath.
Post reply on HN