Live data from Hacker News

I accidentally a scheme

wingolog.org

141–143 of 143 posts

Re: I accidentally a scheme

#141
post #116
post #77

It’s time for a new book with a cartoon elephant on the front. “The Accidental Schemer”.

Speaking of, I was disappointed that Duane did not make the drawings for the latest volume. Perhaps he's retired now.

I believe that is indeed why.

Re: I accidentally a scheme

#142
post #141
post #116

Earlier quoted context omitted.

Speaking of, I was disappointed that Duane did not make the drawings for the latest volume. Perhaps he's retired now.

I believe that is indeed why.

He has a marvelous drawing approach. I've not yet found any other similar drawings that really quite capture the same style. I was honored that he agreed to make some drawings for a project of mine years ago; I still have the originals in a frame.

Happy retirement to him!

Re: I accidentally a scheme

#143

Earlier quoted context omitted.

If you don't know Lisp, and start writing your own, you're only learning your own concoction, and not any other Lisp. And that concoction has its limits. It doesn't compare to the breadth and scope of the Lisp culture. Interacting only with something you have made is the worst possible way to learn anything about existing, mainstream Lisp. Not knowing anything about the prior art will practically ensure that your own…

Are you criticizing the MAL project or just offering general advice? I feel MAL does a decent job illustrating the core concepts of Lisp, but then I'm not a Lisp expert by any means.

I'm not sure which, if any, of my remarks apply to MAL specifically.

I don't have the impression that the author of the MAL project used it as a way of learning Lisp.

To my best understanding, MAL provides a step by step recipe and test cases for implementing a language dialect, plus example implementations for which that has been done.

Someone going through the MAL exercise will mainly interact with the chosen implementation language. Writing a new MAL implementation could be used as an exercise to learn some unfamiliar language.

I'm not convinced that programmers implementing MAL are actually learning how to use MAL, since it doesn't look as if the exercise requires them to write MAL code to solve problems. To learn MAL, you would take the project as-is with its integrated implementations and use that to get other work done.

Suppose someone actually learns MAL by working with it. Are they learning Lisp?

I'm not sure how much of their acquired skill will transfer to working with a mainstream Lisp. MAL looks rather like a kind of Mock Lisp (see: https://en.wikipedia.org/wiki/Mocklisp). It's implemented even in Bash and Awk using string processing.

The good thing about MAL is that at least the participants in the exercise are following a specification instead of just making something up as they go along and calling it Lisp. Making something that is compatible with a spec and other implementations is a good exercise for software engineering students, regardless of what it is. MAL would still be valuable that way if it was, say, MAVE: make a vi editor, or MAM: make a Mario game.

I have no idea how effective MAL is educationally in teaching the concepts themselves that underpin MAL, which revolves around this question: is it possible to mechanically follow the recipe and get a new implementation working, without understanding the concepts? Separately from the question of whether MAL concepts are Lisp concepts, is the MAL implementor who follows the structured workflow learning the MAL concepts, or are they just massaging code to get some tests to pass. (But, of course, even if they are, so what; nothing stands in their way of learning any concepts they want in any other manner.)

Post reply on HN