module MutualRecursion
Public Instance Methods
tail_call() { || ... }
click to toggle source
Make a direct or indirect recursive call in tail position.
@yieldreturn [MutualRecursion::TailCall] a tail call @return [MutualRecursion::TailCall] a non terminal tail call
# File lib/mutual_recursion.rb, line 44 def tail_call TailCall.new { yield } end
terminal_value(value)
click to toggle source
Indicates that the recursion has ended with the provided value.
@param [Object] value the terminal value @return [MutualRecursion::TailCall] a terminal tail call that will return the given value
# File lib/mutual_recursion.rb, line 54 def terminal_value(value) TailCall.new(value) end