カリー化

def foo(a, b, c):
    print(a, b, c)

foo1 = foo(1, @, @)
foo1(2, 3)  #=> 1, 2, 3

foo(1, @, @)  #=> オブジェクトが宙に浮いているのでエラー(必ず代入するか、呼び出すかのどちらかが必要)

このカリー化のやり方だと、前出のブロックを代入する場合に、どのスロットに入れれば良いのか区別がつかないのが問題。ブロックを明示的に代入する場合の特別な構文を作るべきかも。ここは要検討。