Class: Lisp::PrimEquivalence
Class Method Summary collapse
- .eq_impl(args, env) ⇒ Object
- .equal_impl(args, env) ⇒ Object
- .eqv_impl(args, env) ⇒ Object
- .neq_impl(args, env) ⇒ Object
- .nequal_impl(args, env) ⇒ Object
- .neqv_impl(args, env) ⇒ Object
- .register ⇒ Object
Class Method Details
.eq_impl(args, env) ⇒ Object
63 64 65 66 67 |
# File 'lib/rubylisp/prim_equivalence.rb', line 63 def self.eq_impl(args, env) o1 = args.car o2 = args.cadr Lisp::Boolean.with_value(o1.eq?(o2)) end |
.equal_impl(args, env) ⇒ Object
77 78 79 80 81 |
# File 'lib/rubylisp/prim_equivalence.rb', line 77 def self.equal_impl(args, env) o1 = args.car o2 = args.cadr Lisp::Boolean.with_value(o1.equal?(o2)) end |
.eqv_impl(args, env) ⇒ Object
49 50 51 52 53 |
# File 'lib/rubylisp/prim_equivalence.rb', line 49 def self.eqv_impl(args, env) o1 = args.car o2 = args.cadr Lisp::Boolean.with_value(o1.eqv?(o2)) end |
.neq_impl(args, env) ⇒ Object
70 71 72 73 74 |
# File 'lib/rubylisp/prim_equivalence.rb', line 70 def self.neq_impl(args, env) o1 = args.car o2 = args.cadr Lisp::Boolean.with_value(!o1.eq?(o2)) end |
.nequal_impl(args, env) ⇒ Object
84 85 86 87 88 |
# File 'lib/rubylisp/prim_equivalence.rb', line 84 def self.nequal_impl(args, env) o1 = args.car o2 = args.cadr Lisp::Boolean.with_value(!o1.equal?(o2)) end |
.neqv_impl(args, env) ⇒ Object
56 57 58 59 60 |
# File 'lib/rubylisp/prim_equivalence.rb', line 56 def self.neqv_impl(args, env) o1 = args.car o2 = args.cadr Lisp::Boolean.with_value(!o1.eqv?(o2)) end |
.register ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/rubylisp/prim_equivalence.rb', line 5 def self.register Primitive.register("=", "2", "(= n1 n2)\n\nEquivalent to (eqv? n1 n2)") do |args, env| Lisp::PrimEquivalence::eqv_impl(args, env) end Primitive.register("==", "2", "(== n1 n2)\n\nEquivalent to (eqv? n1 n2)") do |args, env| Lisp::PrimEquivalence::eqv_impl(args, env) end Primitive.register("!=", "2", "(!= n1 n2)\n\nEquivalent to (neqv? n1 n2).") do |args, env| Lisp::PrimEquivalence::neqv_impl(args, env) end Primitive.register("/=", "2", "(/= n1 n2)\n\nEquivalent to (neqv? n1 n2).") do |args, env| Lisp::PrimEquivalence::neqv_impl(args, env) end Primitive.register("eq?", "2") do |args, env| Lisp::PrimEquivalence::eq_impl(args, env) end Primitive.register("neq?", "2") do |args, env| Lisp::PrimEquivalence::neq_impl(args, env) end Primitive.register("eqv?", "2") do |args, env| Lisp::PrimEquivalence::eqv_impl(args, env) end Primitive.register("neqv?", "2") do |args, env| Lisp::PrimEquivalence::eqv_impl(args, env) end Primitive.register("equal?", "2") do |args, env| Lisp::PrimEquivalence::equal_impl(args, env) end Primitive.register("nequal?", "2") do |args, env| Lisp::PrimEquivalence::nequal_impl(args, env) end end |