1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
# -*- coding: utf-8 -*-
require_relative 'list'
class Array
include MIKU::List
def car
self.first
end
def cdr
result = self[1..self.size]
if is_a?(MIKU::StaticCode)
result.extend(MIKU::StaticCode).staticcode_copy_info(staticcode_dump) end
result unless result.empty? end
def terminator
nil end
def setcar(val)
result = val.clone
result[0] = val
result.freeze
end
def setcdr(val)
MIKU::Cons.new(self.car, val)
end
def unparse(start=true)
result = ''
result = '(' if start
result + self.map{ |n| MIKU.unparse(n) }.join(' ') + ')'
end
end
|