slope lines
リストの指定位置を更新する書き方が分からずVectorを使ったらダントツでビリ。
$ gosh -E 'let1 v #(0 1 2) (set! (ref v 2) 3) (print v) (exit)' #(0 1 3) $ gosh -E 'let1 l `(0 1 2) (set! (ref l 2) 3) (print l) (exit)' gosh: "error": no applicable method for #<generic |setter of ref| (5)> with arguments ((0 1 2) 2 3)
上のがアリなら下のも通ってくれてよさそうなのに。
+
arc> (= l '(0 1 2)) (0 1 2) arc> (= (l 2) 3) 3 arc> l (0 1 3)
スバラシイ。
++
gauche.sequence使えばよかったらしい。
gosh> (use gauche.sequence) #<undef> gosh> (define l '(0 1 2)) l gosh> (set! (ref l 2) 3) #<undef> gosh> l (0 1 3)
5B縮んだが依然としてビリ…。
+++
大きな見落としに気づいてビリから脱出。はずみでRuby版も縮む。