Cでリストライブラリ製作
car,cdr,append,reverse辺りまで作った所.でもinspectだけはRubyで書いた.
irb:0> a = List.new(1,2,3) => (1 2 3) irb:0> b = List.new(a,a,a) => (#0=(1 2 3) #0# #0#) irb:0> b.cdr = b => #0=((1 2 3) . #0#) irb:0> List.new(a,b,b) => (#0=(1 2 3) #1=(#0# . #1#) #1#) irb:0> c = List.new([a]) => ([#0=(1 . #0#)]) irb:0> c.cdr = c => #0=([#0=(1 . #0#)] . #0#) irb:0> c.car[0] = c => #0=([#0=([...] . #0#)] . #0#) irb:0> d = List.new(ary = []) => ([]) irb:0> d.car << d => [([...])] irb:0> d.cdr = List.new(d, ary) => #0=(([#0=([...] #0# [...])] . #0#) [#0=([...] #0# [...])]) irb:0> e = List.new(1) => (1) irb:0> e.car = e => #0=(#0#)
配列が絡むと迷宮入りするかと思ったけど,どうやらrubyが空気を読んでくれているようだ.番号付けがおかしくなってるのは知ってる.
とりあえず,pしようとして無限ループに陥るハメにならずにすみそうだ.
番号は後から付けるようにすればいいのかな.