aboutsummaryrefslogtreecommitdiff
path: root/ruby/types.rb
diff options
context:
space:
mode:
Diffstat (limited to 'ruby/types.rb')
-rw-r--r--ruby/types.rb18
1 files changed, 18 insertions, 0 deletions
diff --git a/ruby/types.rb b/ruby/types.rb
index 02ca7a6..16d8d1e 100644
--- a/ruby/types.rb
+++ b/ruby/types.rb
@@ -1,6 +1,24 @@
+require "env"
+
class List < Array
end
class Vector < Array
end
+class Function < Proc
+ attr_accessor :ast
+ attr_accessor :env
+ attr_accessor :params
+
+ def initialize(ast=nil, env=nil, params=nil, &block)
+ super()
+ @ast = ast
+ @env = env
+ @params = params
+ end
+
+ def gen_env(args)
+ return Env.new(@env, @params, args)
+ end
+end