News for hackers. Stuff that matters.
Re:Python iteration by ggchappell on Wednesday April 25, 2012 @06:03PM (#3891349)
Well, strictly speaking, you have answered my objection. But I guess I was thinking in Haskell. If Python's map takes multiple iterables, then, yes, zip is a special case. But writing zip by mapping a function without side effects, using a "map" that works only on a single iterable (as in Haskell) strikes me as a rather different thing.

So I suppose that the truth of "this loop can be written using map" depends on exactly what one means by "map".

Re:Python iteration by dustingetz on Wednesday April 25, 2012 @07:27PM (#3891616)
interesting. how about

    def head(seq): return seq[0]
    def rest(seq): return seq[1:]
    def transpose(mtx):
        a = map(head, mtx)
        b = map(rest, mtx)
        return [a] + ([transpose(b)] if b[0] else [])

    def zip(xs, ys):
        return transpose((xs, ys))

    def zip2(*seqs):
        return transpose(seqs)
this works but is sort of icky in python, any ideas? this is also where functional python starts to fall apart - no tail call recursion, and default data structures aren't persistent. based on a haskell solution which is nicer. http://stackoverflow.com/questions/2578930/understanding-thi...