@@ -125,13 +125,19 @@ def pipe1(value0, *bodys):
125125
126126 at the cost of namespace pollution.
127127 """
128- # Ideally we should use fploop, but we choose to cheat imperatively to avoid
129- # the added complexity of supporting the runtime-switchable TCO implementation.
130- # @looped_over(bodys, acc=value0)
131- # def x(loop, update, acc):
132- # return loop(update(acc))
133- # return x
134- # Since "x" is a local, the imperative damage won't spread to the call site.
128+ # Ideally we should use fploop, but we choose to cheat imperatively.
129+ # This used to be to avoid the added complexity of supporting the
130+ # runtime-switchable TCO implementation, but ever since we got rid of that
131+ # misfeature all the way back in v0.10, there's been really no reason to
132+ # avoid @looped_over, except performance.
133+ #
134+ # Since "x" is a local, the imperative damage won't spread to the call
135+ # site. So we can just as well use the builtin imperative for loop, and
136+ # reap the performance benefit.
137+ # @looped_over(bodys, acc=value0)
138+ # def x(loop, update, acc):
139+ # return loop(update(acc))
140+ # return x
135141 x = value0
136142 for update in bodys :
137143 x = update (x )
0 commit comments