3 ms·
As one of those crazy functional programmers who uses python, can you please explain to me what the benefit is in remove xrange, lazy map/filter/reduce, and oth
by merlincorey 12y ago
As one of those crazy functional programmers who uses python, can you please explain to me what the benefit is in remove xrange, lazy map/filter/reduce, and other functional mainstays in exchange for what is essentially more syntax to do the same?
- bachmann1234 12y agowell, range in python 3 is lazy. They replaced the non lazy implementation with xranges impl. Same applies to map, filter and I believe reduce as well.
- maxerickson 12y agoIt's the other way around, they are not removed, the default implementations are now lazy. So in python 3 you get an interator: >>> map(lambda i:i*i, range(5)) <map object at 0x010622F0> and have to explicitly construct a list: >>> list(map(lambda i:i*i, range(5))) [0, 1, 4, 9, 16] >>>
- merlincorey 12y agoAh, I actually like that! That is indeed cleaner. Thanks for the explanation.
- agentultra 12y agoTraversing a binary tree without an explicit stack is also much cleaner thanks to sub-generators. if tree.left: yield from traverse(tree.left) yield tree if tree.right: yield from traverse(tree.right) As a trivial example.