質問:
りんごは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」の部分も表したい。
もうひとつは関連して、RubyやPythonはリストの中に文字列と数字を混在できるし、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