1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
$core_ns = {
:"=" => lambda {|a,b| a == b},
:"pr-str" => lambda {|*a| a.map {|e| _pr_str(e, true)}.join(" ")},
:"str" => lambda {|*a| a.map {|e| _pr_str(e, false)}.join("")},
:"prn" => lambda {|*a| puts(a.map {|e| _pr_str(e, true)}.join(" "))},
:"println" => lambda {|*a| puts(a.map {|e| _pr_str(e, false)}.join(" "))},
:< => lambda {|a,b| a < b},
:<= => lambda {|a,b| a <= b},
:> => lambda {|a,b| a > b},
:>= => lambda {|a,b| a >= b},
:+ => lambda {|a,b| a + b},
:- => lambda {|a,b| a - b},
:* => lambda {|a,b| a * b},
:/ => lambda {|a,b| a / b},
:list => lambda {|*a| List.new a},
:list? => lambda {|*a| a[0].is_a? List},
:empty? => lambda {|a| a.size == 0},
:count => lambda {|a| a.size},
}
|