On Tuesday, May 12, 2015 at 12:27:44 PM UTC+5:30, Chris Angelico wrote: > On Tue, May 12, 2015 at 4:42 PM, Rustom Mody wrote: > > And related to that (and one reason a pure functional language is good for > > pedagogy): NO PRINT statement > > It may seem trivial but beginning students have a real hard writing clean > > structured code. Tabooing prints helps get there faster > > And working in the interpreter makes a print-taboo a viable option > > I firmly disagree.
Yes we know that! As it happens you also disagree with ACM's latest CS curriculum: https://www.acm.org/education/CS2013-final-report.pdf [pg 158] Absolute basics of CS include functional programming; among which first point is 'effect-free programming' [Note there is no mention or commitment to fancy functional programming *languages*, just the principles] > Interactive work is well and good, but print (or > equivalent - console.log, log.info, werror, etc etc) is extremely > useful for learning about a larger application. You are talking phd level (or maybe graduate level) I am talking kindergarten > You can play with things at the terminal, Very important to play before you grow up > but how can you find out exactly what happens > when you click this button? Ensuring that your application can be > imported, executed, and manipulated interactively, all without > breaking its primary purpose, is a LOT of extra work, and not > something I'd recommend to beginners. So learn about print, learn > about how to get info out of a running program. You'll be the better > programmer for it. Maybe you should read up on Bloom's taxonomy [ACM curriculum follows this but simplified from 5 to 3 levels -- familiarity, usage, assessment] In particular wrt print: You are not distinguishing - learning the 'what' of print (familiarity) from - learning the how (usage) and most important the "when not" (assessment) -- https://mail.python.org/mailman/listinfo/python-list