|defv "==" deff { ==f ==a a len ==l l { 0 a * 1 l range { a * f * } each } { "fold on empty array" die } ? * } /fold deff { ==f _ len ==l l dearray l 1 sub f rep } /foldshort deff { ==f { f fold } } /enfold deff [ 1 2 3 ] _ |add fold dump _ |add foldshort dump _ |add enfold * dump --