Chervil is a toy Lisp interpreter written in Ruby
Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

application.rb 459B

12345678910111213141516171819202122
  1. module Chervil::AST
  2. class Application
  3. attr_reader :expr
  4. attr_reader :arguments
  5. def initialize(expr, arguments)
  6. @expr = expr
  7. @arguments = arguments
  8. end
  9. def ==(other)
  10. @expr == other.expr && @arguments == other.arguments
  11. end
  12. def evaluate(env)
  13. if @expr.class == Identifier
  14. function = env.get(@expr.name)
  15. function.call(@arguments.map { |arg| arg.evaluate(env) })
  16. end
  17. end
  18. end
  19. end