I'd say it's not just a matter of which keywords one chooses but how many. It'd be easy enough for Python to bloat with additional control structures the "fit the brain" of those used to thinking a particular way.
I favor teaching any language with an assumption the student will always be learning others, so it helps to make bridges and analogies. When it comes to keywords, the discussion could go in the direction of "expression versus statement" e.g. in Python we have that distinction (an if statement is not an expression, defining expressions as "namables" e.g. name = "rock" in pile) whereas in Clojure (LISP family) we don't. Python's list comprehension syntax is a good example of how the keywords for controlling logic also enter into creating expressions i.e. for loop and if condition syntax as a part of an expression. That brings up another point: once you've mastered Python's for, you also have easy access to list, set and dict comprehension syntax. So the question is not just: which keywords are best but *how few* might one get away with (if *any*) and what's the payback for learning them i.e. how powerful are they, used in conjunction? Kirby
_______________________________________________ Edu-sig mailing list Edu-sig@python.org https://mail.python.org/mailman/listinfo/edu-sig