-
Notifications
You must be signed in to change notification settings - Fork 97
Open
Description
Add class as example
change
class Add
def reduce(environment)
if left.reducible?
Add.new(left.reduce(environment), right)
elsif right.reducible?
Add.new(left, right.reduce(environment))
else
Number.new(left.value + right.value)
end
end
endto
class Add < Struct.new(:left, :right)
def reduce(environment)
if left.reducible?
left_reduce, environment = left.reduce(environment)
[Add.new(left_reduce, right), environment]
elsif right.reducible?
right_reduce, environment = right.reduce(environment)
[Add.new(left, right_reduce), environment]
else
[Number.new(left.value + right.value), environment]
end
end
endMetadata
Metadata
Assignees
Labels
No labels