行列とボックス

質問:
りんごは90円、みかんが50円、バナナが60円として、それぞれ3個、4個、20個あるとします。
これを表現せよ。


考察:
りんごを1、みかんを2、バナナを3として、次のようなマトリックスにする。

   apple=: 1 90 3
   orange=:2 50 4
   banana=:3 60 20
   apple, orange ,:banana
1 90  3
2 50  4
3 60 20

これはこれでいいのですが、問題はふたつあって、ひとつは「りんごを1、みかんを2、バナナを3」の部分も表したい。
もうひとつは関連して、RubyPythonはリストの中に文字列と数字を混在できるし、Dictionaryとして、文字列を引数として対応する数字を引くことができます。そんな感じにするにはどうしたらよいか。いずれにせよ、APL/Jでは文字列と数字は行列としては混在できませんので、ボックスを使うしかありません。

   apple_box=:'apple';90;3
   orange_box=:'orange';50;4
   banana_box=:'banana';60;20
   apple_box , orange_box ,: banana_box
 +------+--+--+
 |apple |90|3 |
 +------+--+--+
 |orange|50|4 |
 +------+--+--+
 |banana|60|20|
 +------+--+--+

これもこれでいいのですが、ハンドリングが悪そうですね。
ところで一体全部でいくらなんだとか、りんごとみかんを5個ずつ増やしたらバナナより高くなるか、とか聞かれるとめんどくさそう。


きょうはここまで。


追記:とりあえず、全部でいくらかを計算しました。

   +/ (0&{ * 1&{) > |: }."1 basket
1670