Hacker News new | ask | show | jobs
by cheez 2479 days ago
https://github.com/dustmop/co2/blob/master/compile.scm#L3689

Indeed, it's almost trivial.

1 comments

you just need to implement read-syntax ...
I wasn't being sarcastic, it was very simple the way they've done it. https://docs.racket-lang.org/reference/Reading.html#%28def._...
I'm saying that there is a larger machinery behind it. It just looks simple.
Well ok but then technically a hello world is complex for the same reasons
I'd say this depends of the complexity of the I/O system.

This was the original claim, which you supported:

'Parsing Lisp in Lisp is so easy because it’s free.'

The example you were pointing to is explicitly calling a parsing engine of Racket via 'read-syntax'. Actually more complicated than the usual s-expression reader - which does only read s-expressions, but has no further idea about Scheme syntax.

Check the usual Scheme report / Racket documentation for the definition of Scheme syntax, syntax objects and its extension mechanisms (macros, ...). I'd say the whole thing is non-trivial. There is a grammar of Scheme, but it is not fixed, because there are extension mechanisms, which make parsing challenging.

It's 'free' because it's a provided language facility - but not free in terms of complexity of the concepts to understand.

And no, the syntax of s-expressions (-> data) is not the syntax of Lisp. It's just the syntax of s-expressions. Search the Scheme report for 'syntax'...

Ah I love computer programmers