Hacker News new | ask | show | jobs
by freilanzer 314 days ago
That sounds horrible. What are better resources?
6 comments

MAL, the original "make a lisp", is a bit terse on details but gives you freedom to use different languages, and yet still provide a rough blueprint:

https://github.com/kanaka/mal

Discussed here, a few times:

https://news.ycombinator.com/from?site=github.com/kanaka

Thanks! Macroexpanded:

Mal – Make a Lisp - https://news.ycombinator.com/item?id=26924344 - April 2021 (40 comments)

Mal – Make a Lisp, implemented in 79 languages - https://news.ycombinator.com/item?id=21670442 - Nov 2019 (11 comments)

Mal – Make a Lisp, in 68 languages - https://news.ycombinator.com/item?id=15226110 - Sept 2017 (69 comments)

Make your own Lisp - https://news.ycombinator.com/item?id=13967401 - March 2017 (32 comments)

Mal – Make a Lisp - https://news.ycombinator.com/item?id=12720777 - Oct 2016 (1 comment)

Make a Lisp in Nim - https://news.ycombinator.com/item?id=9145360 - March 2015 (44 comments)

Make a Lisp - https://news.ycombinator.com/item?id=9121448 - Feb 2015 (41 comments)

Lisp implemented in under 1K of JavaScript - https://news.ycombinator.com/item?id=9109225 - Feb 2015 (16 comments)

MAL is pretty good, albeit less hand-holding: https://github.com/kanaka/mal

Writing a Lisp in Ocaml: https://bernsteinbear.com/blog/lisp/00_fundamentals/

Not Lisp-specific but Crafting Interpreters is also great: https://craftinginterpreters.com/

Crafting Interpreters is an amazing resource.
I'd say that the best is probably the book "Lisp in Small Pieces".

Be aware that it's some 500 pages and makes several interpreters then a couple of compilers as I recall. If you read it though, you'll come out the other end with a pretty good understanding of how lisp implementations actually work.

Lisp In Small Pieces by Christian Queinnec

It takes a very thoughtful approach to introducing an increasingly complex Scheme implementation. I doesn't shy away from the complexity that many LISP implementation tutorials try to push under the rug.

I started from https://github.com/videogamepreservation/abuse which ... well, isn't perfect but it IS fun and the original game was, too.
I just nano-blogged my thoughts about this yesterday: https://BI6.US/CO/N/20250803.HTML#/080401
Microblogs are 200-500 characters, so I was expecting a nanoblog to me to be an order of magnitude less than that :sweat_smile:
Or technically, three orders of magnitude smaller? (half a character per post)
oh. the measure is how much code was used to implement it. at about 200 lines of javascript (to parse the text, convert it to json and render it as static HTML) it's at least a thousand times fewer lines of code as the early scala code that implemented twitter.

[edit - though it looks like handlebars (that I use for generating HTML from templates) has about 30k lines in files that end in .js, so maybe twitter is 30m lines of code?]

[second edit - hmm... maybe i'll change the name to "mini-blog" to signal it's a blog that's 25% the performance of a "mainframe-blog" but 10% the cost. though "mini-blog" might be more appropriate: halfway between a "normal" blog entry and a "micro-blog."]

Just make the urls a little longer and then you can tell people the posts are generally shorter than the urls.
also... I'm a computer scientist so "three orders of magnitude" means 8. ;-)