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.
The ones who understood what's going on anyway...I was just confused...O.o
ReplyDeleteAnonymous:
ReplyDeletethat's reassuring. I would expect people to be confused the first time they see higher-order procedures. It means that you understand that I'm not just shuffling words around, but there is something really new going on there: confusion is, I think, the right reaction, and it is a good sign. First, confusion, then, as you gradually take it in, amazement. Hopefully...
Those seem like natural questions to me :).
ReplyDelete