Hacker News new | ask | show | jobs
by KineticLensman 1124 days ago
I agree about MAL (which I also came across thanks to HN). I've seen comments on HN to the effect that you are better off looking at the source code of an open lisp to understand how to do it properly, but I found working through MAL really educational and motivating. I was really pleased when I got my MAL implementation (in C#) to self-host.

I only really cheated once (by looking at an existing implementation) and that was when I was implementing macros. I discovered I'd misread something in the MAL guide and was doing the correct things, but in the wrong order.

I'm now doing MAL again in Rust as a way of going up the Rust learning curve, and when I've done that (or enough) I'm going to see if I can code a garbage collected version of MAL (probably using 'Crafting Interpreters' as a guide - another really superb instructional resource).

1 comments

I think MAL is rather demanding. Each step wants you to write specific functionalities which may not be absolutely crucial. Sometimes it's hard to assemble pieces in coherent enough MAL-satisfying whole. I guess MAL wants to be able to test automatically everything, but it still feels more problematic than it should.