A toy dynamic programming language written in Ruby
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

function_definition.rb 515B

123456789101112131415161718192021
  1. class AST::FunctionDefinition
  2. attr_reader :name, :parameters, :body, :env
  3. def initialize(name, parameters, body, env = nil)
  4. @name = name
  5. @parameters = parameters
  6. @body = body
  7. @env = env
  8. end
  9. def ==(other)
  10. other.is_a?(AST::FunctionDefinition) && other.name == @name &&
  11. other.parameters == @parameters &&
  12. other.body == @body
  13. end
  14. def execute(env)
  15. return AST::FunctionDefinition.new(@name, @parameters, @body, env) if @name.nil?
  16. env.set(@name.name, self)
  17. end
  18. end