On Sat, Jun 18, 2016 at 09:04:10PM -0700, Danny Yoo wrote: > > You know Steve, as I was typing the beginning of a reply responding to > > a similar question you asked earlier in your response, I suddenly > > realized how ridiculous having a parameter of 'col/2' is! I'll just > > have either eat crow or attribute this to a brain fart. You pick! > > Just to play devil's advocate: it's not crazy. Essentially, what > you're asking for is called "pattern matching", and it is done in a > class of many programming languages.
Ah, I didn't think of pattern matching. Another good example is Haskell. But still, even with pattern matching, I'm not sure that col/2 would be a useful pattern. That would match any number. [...] > It's a bit out of scope to talk about this much here, but I just > wanted to chime in here to say that you are not ridiculous. :P But > Python does not have a robust pattern matching facility; the closest > it has is a limited form of tuple matching: > > ###################### > > def f((x,y), z): > ... print x, y, z > ... > > f([1, 2], 3) > 1 2 3 > ###################### That's not so much *matching tuples* as expanding any iterable object. It is equivalent to: def f(_tmp, z): x, y = _tmp del _tmp print x, y, z > with very limited applicability and rarely used. In Python 2, it's unusual. In Python 3, it's impossible, as the facility is removed from the language. -- Steve _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor