| Of course everyone comes at these things with different histories and different intrinsic interests. But I really enjoyed fundamental stuff like: * the concept of assignment implying _time_ and messing with the substitution model. * recursive functions that are iterative * iterative structures that are recursive * At the base of the base of the data abstraction in LISP is, well, nothing. * Code as data, data as code, really strongly underlined. * The whole LISP written in itself (as a sort of fixed point of a language that defines a language). That is really something. * The idea of using a language to write a language that lets you express your problem. That last one is probably obvious to most, but it was really novel to me (despite years of writing functions to compute answers). |