Yes, but I often use Lisp expressions as quasi documentation when learning someone else's code. How does this function work? Let's call it from the REPL. Maybe that's too complicated? Let's copy some inner bit of it to the REPL and play with that. Ok, I see how that works, now let's try calling the whole thing.
This 'play with some inner bit until you understand it' technique is interesting in a couple of ways. It means you're bringing the code to life piece by piece; and it means you're reading it inside-out. Both of those things were revelations to me.
As an aside, this gets harder to do to the degree that the code is written in an OO-style (even in Common Lisp) because you typically have to create other objects before you can bring code to life, which is usually not obvious how to do and bogs the process down.
Right, this becomes problematic with OO code. It also is problematic with large libraries when you're trying to figure out where to start. I.e. what are the three functions I need to call to run this search engine library.
This 'play with some inner bit until you understand it' technique is interesting in a couple of ways. It means you're bringing the code to life piece by piece; and it means you're reading it inside-out. Both of those things were revelations to me.
As an aside, this gets harder to do to the degree that the code is written in an OO-style (even in Common Lisp) because you typically have to create other objects before you can bring code to life, which is usually not obvious how to do and bogs the process down.