関数式の違い

関数は fun(arg) expr という形式と、|arg| expr という形式で作ることが出来ます。
これらは記法の違い以外に、動作の違いもあります。

arg expr で作った関数は、呼び出しの際、多重代入と同じルールで引数が渡されます。
foo: fun{ return 1, 2, 3; }

boo: fun(a, b, c) a + b + c;
bar: |a, b, c| a + b + c;

boo(foo()); // 引数の数が違うという例外が投げられる
bar(foo()); // ok