procedure main()
every func := ![add2, sub2, mul2, div2, mod2] do
write(image(func), ": type = ", type(func), "; func(17, 7) = ", func(17, 7))
end
procedure add2(a, b)
return a + b
end
procedure sub2(a, b)
return a / b
end
procedure mul2(a, b)
return a * b
end
procedure div2(a, b)
return a / b
end
procedure mod2(a, b)
return a % b
end
cHJvY2VkdXJlIG1haW4oKQogICBldmVyeSBmdW5jIDo9ICFbYWRkMiwgc3ViMiwgbXVsMiwgZGl2MiwgbW9kMl0gZG8KICAgICAgd3JpdGUoaW1hZ2UoZnVuYyksICI6IHR5cGUgPSAiLCB0eXBlKGZ1bmMpLCAiOyBmdW5jKDE3LCA3KSA9ICIsIGZ1bmMoMTcsIDcpKQplbmQKCnByb2NlZHVyZSBhZGQyKGEsIGIpCiAgIHJldHVybiBhICsgYgplbmQKCnByb2NlZHVyZSBzdWIyKGEsIGIpCiAgIHJldHVybiBhIC8gYgplbmQKCnByb2NlZHVyZSBtdWwyKGEsIGIpCiAgIHJldHVybiBhICogYgplbmQKCnByb2NlZHVyZSBkaXYyKGEsIGIpCiAgIHJldHVybiBhIC8gYgplbmQKCnByb2NlZHVyZSBtb2QyKGEsIGIpCiAgIHJldHVybiBhICUgYgplbmQ=