Class: LambdaCalculus::Function1::Closure
- Inherits:
-
Object
- Object
- LambdaCalculus::Function1::Closure
- Defined in:
- lib/mail/vendor/treetop-1.4.3/examples/lambda_calculus/lambda_calculus.rb
Instance Attribute Summary collapse
-
#env ⇒ Object
readonly
Returns the value of attribute env.
-
#function ⇒ Object
readonly
Returns the value of attribute function.
Instance Method Summary collapse
- #apply(arg) ⇒ Object
-
#initialize(function, env) ⇒ Closure
constructor
A new instance of Closure.
- #to_s(other_env = {}) ⇒ Object
Constructor Details
#initialize(function, env) ⇒ Closure
Returns a new instance of Closure.
489 490 491 492 |
# File 'lib/mail/vendor/treetop-1.4.3/examples/lambda_calculus/lambda_calculus.rb', line 489 def initialize(function, env) @function = function @env = env end |
Instance Attribute Details
#env ⇒ Object (readonly)
Returns the value of attribute env.
487 488 489 |
# File 'lib/mail/vendor/treetop-1.4.3/examples/lambda_calculus/lambda_calculus.rb', line 487 def env @env end |
#function ⇒ Object (readonly)
Returns the value of attribute function.
487 488 489 |
# File 'lib/mail/vendor/treetop-1.4.3/examples/lambda_calculus/lambda_calculus.rb', line 487 def function @function end |
Instance Method Details
#apply(arg) ⇒ Object
494 495 496 |
# File 'lib/mail/vendor/treetop-1.4.3/examples/lambda_calculus/lambda_calculus.rb', line 494 def apply(arg) function.body.eval(function.param.bind(arg, env)) end |
#to_s(other_env = {}) ⇒ Object
498 499 500 |
# File 'lib/mail/vendor/treetop-1.4.3/examples/lambda_calculus/lambda_calculus.rb', line 498 def to_s(other_env={}) "\\#{function.param.to_s}(#{function.body.to_s(other_env.merge(env))})" end |