This week I taught higher-order procedures and anonymous procedures (lambda). I said, among other things, that a high-order procedure is a procedure that takes a procedure as one of its arguments. I said, among other things, that lambda enables you to define a function anonymously, without giving it a name. Here are some of the very first questions I got:
1 - Can a higher-order procedure be called with itself as its own argument?
2 - How do you write a recursive procedure using lambda? Since it does not have a name, how do you write the recursive call?
I was just blown away. My students are so smart. A little bit on the crazy side, but amazingly creative.