Earlier quoted context omitted.
> (1) there is very little compile-time error analysis and type declaration There's been a lot of improvement on that front.
It's still… not the same. In CL (and specially with SBCL), we get compile time (type) errors and warnings at the blink of an eye, when we compile a single function with a keystroke (typically C-c C-c in Slime). And there's also been improvement, see Coalton for a ML on top of CL. ( https://github.com/coalton-lang/coalton/ ) (and SBCL itself evolves)
(How to Write a (Lisp) Interpreter (In Python)) (2010)
21–30 of 101 posts
Re: (How to Write a (Lisp) Interpreter (In Python)) (2010)
#22Earlier quoted context omitted.
> (1) there is very little compile-time error analysis and type declaration There's been a lot of improvement on that front.
It's still… not the same. In CL (and specially with SBCL), we get compile time (type) errors and warnings at the blink of an eye, when we compile a single function with a keystroke (typically C-c C-c in Slime). And there's also been improvement, see Coalton for a ML on top of CL. ( https://github.com/coalton-lang/coalton/ ) (and SBCL itself evolves)
A good presentation on what we're missing: https://www.youtube.com/watch?v=8Ab3ArE8W3s
Re: (How to Write a (Lisp) Interpreter (In Python)) (2010)
#23Earlier quoted context omitted.
It's still… not the same. In CL (and specially with SBCL), we get compile time (type) errors and warnings at the blink of an eye, when we compile a single function with a keystroke (typically C-c C-c in Slime). And there's also been improvement, see Coalton for a ML on top of CL. ( https://github.com/coalton-lang/coalton/ ) (and SBCL itself evolves)
It's pretty much impossible to explain to people what it's like to work in a CL environment. A good presentation on what we're missing: https://www.youtube.com/watch?v=8Ab3ArE8W3s
Re: (How to Write a (Lisp) Interpreter (In Python)) (2010)
#24Earlier quoted context omitted.
It's pretty much impossible to explain to people what it's like to work in a CL environment. A good presentation on what we're missing: https://www.youtube.com/watch?v=8Ab3ArE8W3s
If you’re part of the group missing something, how would you know?
I used to use scheme and racket but the joy of debugging in CL is worth putting up with two (or four) name spaces.
Re: (How to Write a (Lisp) Interpreter (In Python)) (2010)
#25What I find promising about LISP is the ability to do term rewriting and macros. But people write lisps in imperative style rather than definitions of desired behaviour declaratively. I don't think we've sufficiently solved how to define desired behaviour to a computer. Term rewriting behaviours. What are your thoughts? I started trying to implement term rewriting into my LISP parser, which is the idea that we can ma…
Lisp is not the language for that unfortunately, it is very much an imperative language with better syntax and _some_ macros. Scheme is close but quotation isn't thought about nearly enough. It is generally a CS problem as logic systems with quotation are very much an open problem. I think that types have gotten too much attention and quotation way too little. Macros are basically a way to deal with the fact that nei…
Re: (How to Write a (Lisp) Interpreter (In Python)) (2010)
#26Earlier quoted context omitted.
It's pretty much impossible to explain to people what it's like to work in a CL environment. A good presentation on what we're missing: https://www.youtube.com/watch?v=8Ab3ArE8W3s
If you’re part of the group missing something, how would you know?
Re: (How to Write a (Lisp) Interpreter (In Python)) (2010)
#27What I find promising about LISP is the ability to do term rewriting and macros. But people write lisps in imperative style rather than definitions of desired behaviour declaratively. I don't think we've sufficiently solved how to define desired behaviour to a computer. Term rewriting behaviours. What are your thoughts? I started trying to implement term rewriting into my LISP parser, which is the idea that we can ma…
Lisp is not the language for that unfortunately, it is very much an imperative language with better syntax and _some_ macros. Scheme is close but quotation isn't thought about nearly enough. It is generally a CS problem as logic systems with quotation are very much an open problem. I think that types have gotten too much attention and quotation way too little. Macros are basically a way to deal with the fact that nei…
[0]: https://okmij.org/ftp/tagless-final/TaglessStaged/beyond-tal...
Re: (How to Write a (Lisp) Interpreter (In Python)) (2010)
#28What I find promising about LISP is the ability to do term rewriting and macros. But people write lisps in imperative style rather than definitions of desired behaviour declaratively. I don't think we've sufficiently solved how to define desired behaviour to a computer. Term rewriting behaviours. What are your thoughts? I started trying to implement term rewriting into my LISP parser, which is the idea that we can ma…
Declarative programming is roughly that control flow is handled by the language runtime instead of the programmer. That's either some dedicated language (makefile, yacc) or a DSL in some non-declarative language. It's not lisp, but the tablegen programs used by llvm's backend are an interesting example of a concise declarative syntax turning into a load of C++.
I'd say both are examples of things lisp doesn't really do for you. They're more reasonable to implement in a lisp than in most other languages.
Re: (How to Write a (Lisp) Interpreter (In Python)) (2010)
#29> The beauty of Scheme is that the full language only needs 5 keywords and 8 syntactic forms. Is there a learning resource that covers exactly this for those wanting to write software in lisp in 2024? As "first principle thinkers" in some ways all hackers crave for that "fundamental building blocks approach", a bit like wanting to know how we go from transistors to full computers and every step along the way. Most of…
Re: (How to Write a (Lisp) Interpreter (In Python)) (2010)
#30> The beauty of Scheme is that the full language only needs 5 keywords and 8 syntactic forms. Is there a learning resource that covers exactly this for those wanting to write software in lisp in 2024? As "first principle thinkers" in some ways all hackers crave for that "fundamental building blocks approach", a bit like wanting to know how we go from transistors to full computers and every step along the way. Most of…
I'm not sure what a syntactic form means here - dot as in dotted pair, nil, quote, quasiquote, parens? Having trouble coming up with 8 distinct syntactic things.
The basis set underlying lisp is something like the lambda calculus with optional delayed evaluation, a product type and some file I/O.
The optimal basis set for computation is either non-unique or not yet discovered as far as I can tell - different people arrive at different combinations.