Earlier quoted context omitted.
I don't think they finished the NES version?
Sort of, it's in the game as an emulated ROM: https://www.youtube.com/watch?v=ZffFxLyD4Ig
Technical Breakdown of a new NES game written in Lisp
61–70 of 71 posts
Re: Technical Breakdown of a new NES game written in Lisp
#62Earlier quoted context omitted.
If you aren't going to have a GC, "rich" runtime or lambda support, what does LISP really bring you over FORTH? And implementations of the latter on 6502 have been commonplace since the 1980s...
I understand that Forth is powerful and elegant, and one of the last languages I'd want to take on in a fight when wielded by a master, so let me pretend you were asking about a stripped-down Lisp compared to, say, Pascal, instead: * The simple syntax of stripped-down Lisp is very amenable to application-specific or domain-specific macros. This turns out to be a convenient way to do things that often the language or…
https://all-things-andy-gavin.com/2011/03/12/making-crash-ba...
And later a follow up language GOAL for PS2 https://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp
Re: Technical Breakdown of a new NES game written in Lisp
#63Earlier quoted context omitted.
They did parse it, albeit indirectly, by Racket’s reader. Co2 is a language, not a bunch of function calls, so it’s not quite the same as building a library in your favorite language. The article even gives examples of new syntax they produced. Parsing Lisp in Lisp is so easy because it’s free.
> Parsing Lisp in Lisp is so easy because it’s free. Are there any other languages that have this feature? I.E. where the data and the code are the same syntax?
Re: Technical Breakdown of a new NES game written in Lisp
#64Earlier quoted context omitted.
They did parse it, albeit indirectly, by Racket’s reader. Co2 is a language, not a bunch of function calls, so it’s not quite the same as building a library in your favorite language. The article even gives examples of new syntax they produced. Parsing Lisp in Lisp is so easy because it’s free.
> Parsing Lisp in Lisp is so easy because it’s free. Are there any other languages that have this feature? I.E. where the data and the code are the same syntax?
Re: Technical Breakdown of a new NES game written in Lisp
#65Earlier quoted context omitted.
https://github.com/dustmop/co2/blob/master/compile.scm#L3689 Indeed, it's almost trivial.
you just need to implement read-syntax ...
Re: Technical Breakdown of a new NES game written in Lisp
#66Earlier quoted context omitted.
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._...
Re: Technical Breakdown of a new NES game written in Lisp
#67Earlier quoted context omitted.
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.
Re: Technical Breakdown of a new NES game written in Lisp
#68Earlier quoted context omitted.
With the former favouring OOP and looping over recursion Not my experience at all, fwiw.
While I will not try to debate your experience, I will provide some extra context for my previous assertion: You cannot program in CL without using the CLOS. Most CL books go into great detail explaining it and the MOP, they are also full of looping constructs, even using GOTO. The only exceptions are Graham's books. In open source, it is frowned upon to use recursion as TCO is not part of the standard. Some function…
TCO is not part of the standard, but most implementations have it. All the widely used implementations have it. People use it and it is certainly not frowned upon.
Re: Technical Breakdown of a new NES game written in Lisp
#69Earlier quoted context omitted.
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
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'...
Re: Technical Breakdown of a new NES game written in Lisp
#70Earlier quoted context omitted.
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 usua…