#!env zsh
rb() {
cat<<EOF
def fib pred
a = 0
b = 1
while pred.call(a)
yield a
a, b = b, (a + b)
end
end
fib lambda { |x| x < 100 } do |x|
puts x
end
EOF
}
ruby <(rb)
py() {
cat<<EOF
def fib():
a = 0
b = 1
while True:
yield a
a, b = b, a + b
for x in fib():
if x >= 100:
break
print x
EOF
}
python <(py)