Hacker News new | comments | ask | show | jobs | submit login
A micro manual for Lisp – Not the whole truth (1978) [pdf] (ryerson.ca)
109 points by tosh 4 months ago | hide | past | web | favorite | 16 comments

An only slightly altered version for Common Lisp. The LABEL syntax is slightly different to make it valid CL.


Tasks to explore:

Check that it is actually equally to the published code.

Check that it can interpret itself.

Understand the language it implements and the consequences of no error checking...

  MCLISP 139 > (mclisp:mccarthy-repl)
  mce> (label example (lambda (foo bar) (cons (cons foo 'nil) (cons 'bar 'baz)))
              'qix 'qux)
  ((QIX) BAR . BAZ) 

An only slightly altered version for Raspberry Pi/ARM assembly:


For practical (mature, usable in production) implementations i'd recommend:

in C: ECL compiles Common Lisp down to C or allows it to be embedded in a C program

Python: "Hy" allows to write Python with lisp syntax

Javascript: Parenscript compiles a Common Lisp subset to javascript. Clojurescript compiles a Clojure subset to javascript.

I spent a whole evening last week playing with Hy Lisp (written in Python). It was fairly easy to write to the Keira’s APIs. Can anyone share any interesting HyLang uses/ applications?

Lots of Lisp interest today! Here are a few resources.

On Lisp: https://www.lurklurk.org/onlisp/onlisp.pdf

Lumen - a Lisp for JavaScript and Lua: https://github.com/sctb/lumen

The Art of the Interpeter: https://dspace.mit.edu/bitstream/handle/1721.1/6094/AIM-453....

(^ this last one is very practical. If you reach the point of wanting to implement a practical interpreter, this paper will force you to consider many unexpected cases.)

Simulating circuits with Lisp: https://mitpress.mit.edu/sites/default/files/sicp/full-text/...

My favorite part of SICP: https://mitpress.mit.edu/sites/default/files/sicp/full-text/...

War stories: http://paulgraham.com/avg.html

Lisp in Jak 'n Dexter / Crash Bandicoot: https://all-things-andy-gavin.com/2011/03/12/making-crash-ba...

Fun fact: Lisp is still used today in gamedev! Last of Us uses it heavily: https://www.youtube.com/watch?v=Ox2H3kUQByo&t=2415s

+1 for the link about Andy Gavin's work on Crash Bandicoot and Jak and Daxter. This past winter I dusted off my PS2 and started playing Jak and Daxter again, the first time in about 15 years. I noticed something I had never noticed before: even though it is one of the first games released on the PS2, the game loads almost instantaneously when you hit the "New" or "Load" buttons.

I had to know why, and came across that exact link you referenced. AG had figured out how to do a lot of preprocessing while the game boots up, obviating the need for a lengthy "Loading..." screen. Naughty Dog wrote some very impressive software, that is for sure!

Yes! I've been fascinated with GOAL / GOOL for nearly a decade. I ripped a copy of Last of Us and tore through the game data looking for the lisp code, but unfortunately they only ship the compiled output.

What I wouldn't give to see the source... And Viaweb's source, and HN's source, and gosh there are so many amazing Lisp systems out there.

Well you can the Lisp code of Abuse, which was quite entertaining in the late 90's.





you just made my week, month, and year. I've been looking for a practical Lisp-based game design since I was a teen! Dude.

Thank you.

EDIT: THIS IS SO COOL http://abuse.zoy.org/browser/abuse/trunk/data/lisp/guns.lsp

Edit2: Whoops, fixed the link. I meant to link to this lisp codebase, not SICP. :)

Suffice to say, Abuse is amazing. Thanks! This is an absolute gem of a reference for seeing what worked in practice for Lisp-based gamedev. And in 1995 too!

There's at least one project to resurrect the original (Lisp) reddit: https://github.com/tamurashingo/reddit1.0

At least with HN, there's an old mirror. https://github.com/wting/hackernews There's quite a bit of old code floating around out there (even for Zork iirc), of course there's newer code being written all the time (as you know :)).

Besides code I'd also wish for accompanying code reviews and deep dives, like Fabien does for game engines, though for smaller things the code is usually just fine to just dive in and explore.

In terms of Lisp and game-design, this [ https://borodust.org/projects/cl-bodge/ ] might also be of interest.

There is probably, at certain point of time, eventually a lisp behind every great software.

As I delve back into emacs as my daily driver, I'm playing with lisp more and more to customize.

Thanks for the inspirational links!

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact