On Fri, Jan 3, 2014 at 10:20 PM, Chris Seberino <cseber...@gmail.com> wrote: > > Exceptions, modules, OOP, etc. would be tricky to implement in Scheme but at > least the basics like for loops, while loops, assignment etc. would seem > doable and very instructive for students.....they would thereafter, for all > time, have a mental image of what the Python interpreter is doing.
If thats the intent, sure, scheme is heaven for such In particular, take a language, break it up into a dozen or so 'little-languages' eg one for types, one for control structures, one for scoping/parameter passing etc while 'stubbing out' the rest -- for such scheme is simply unbeatable. And this includes IDEAS of oop modules etc. Its only when you then start demanding: "Why cant this become realistic?" that things start creaking and groaning at the edges A simple example: One of the much touted features of modern functional languages like Haskell (actually its the SML family) is pattern matching. I implemented a macro -- destruct -- to do it in scheme -- all of 91 lines! Now one gets greedy and says: "Hey! Neat! Only small catch is that haskell patterns looks so much neater than these home-cooked Lots-of-Irritating-Single-Parenthesis (aka Lisp-y) patterns." And Wham! The shit begins to hit the ceiling To my mind, scheme is so powerful that even Abelson and Sussman dont get how powerful. I wrote a blog post on that but then diluted the title :D http://blog.languager.org/2013/08/applying-si-on-sicp.html On the whole though, functional languages are distinctly weaker than lisps but much easier for students. Heres an old Wadler paper explaining that: http://www.cs.kent.ac.uk/people/staff/dat/miranda/wadler87.pdf -- https://mail.python.org/mailman/listinfo/python-list