module Rus3::Procedure::Comparison

This module holds comparison operation procedures of Scheme.

Public Instance Methods

ge?(*args) click to toggle source
# File lib/rus3/procedure/comparison.rb, line 22
def ge?(*args)
  c_calc(:>=, *args)
end
gt?(*args) click to toggle source
# File lib/rus3/procedure/comparison.rb, line 18
def gt?(*args)
  c_calc(:>, *args)
end
le?(*args) click to toggle source
# File lib/rus3/procedure/comparison.rb, line 14
def le?(*args)
  c_calc(:<=, *args)
end
lt?(*args) click to toggle source
# File lib/rus3/procedure/comparison.rb, line 10
def lt?(*args)
  c_calc(:<, *args)
end
same_value?(*args) click to toggle source
# File lib/rus3/procedure/comparison.rb, line 26
def same_value?(*args)
  c_calc(:==, *args)
end

Private Instance Methods

c_calc(op, *args) click to toggle source
# File lib/rus3/procedure/comparison.rb, line 32
def c_calc(op, *args)
  case args.size
  when 0, 1
    raise ArgumentError, args.to_s
  when 2
    args[0].send(op, args[1]) ? true : false
  else
    args[0].send(op, args[1]) and c_calc(op, *args[1..-1]) ? true : false
  end
end