コミュート(交換)


二項動詞のあとに~(チルダ)をつけると、右側引数と左側引数を交換できます。xとyを引数として、fを関数とすると、x f~ yはy f xと同じ意味である、というような説明になります。


}(右ブレイス、右波かっこ、アイテムアメンド)という動詞があって、配列の要素に代入をするのに使いますが、これのコミュート版が使えそうなので、メモです。

   a=:'abcd'
   'e' 0 } a
ebcd
   'e' (0 1)} a
eecd
   'ef' (0 2)} a
ebfd
   a 0 }~ 'e'
ebcd
   a (0 1)}~ 'e'
eecd
   a (0 2)}~ 'ef'
ebfd