リストの最後にアトムを追加したい
リストにアトムを追加したい場合:
gosh> (cons 1 '(2 3)) (1 2 3)
という感じにできるんだけど、やりたいのは std::vector で言うところの:
std::vector<int> v; v.push_back(2); v.push_back(3); v.push_back(1); // [2, 3, 1] という順序
java.util.Vector<Integer> v = new java.util.Vector<Integer>(); v.add(2); v.add(3); v.add(1); // [2, 3, 1] という順序
なんだけど、Scheme で最後に追加するには、R5RS を調べてみたところ:
gosh> (append '(2 3) (cons 1 '())) (2 3 1)
という風にするようだ。
gosh> (append '(2 3) 1) (2 3 . 1)
こう書けない(こう書くと別の意味になる)ところがつらい。