OSDN Git Service

fix a bug of equal function.
authorvisor <visor@users.sourceforge.jp>
Mon, 30 Nov 2015 14:43:25 +0000 (23:43 +0900)
committervisor <visor@users.sourceforge.jp>
Mon, 30 Nov 2015 14:43:25 +0000 (23:43 +0900)
lib/ml.cc
modules/ml-bool.cc

index 6f5a3a6..931d893 100644 (file)
--- a/lib/ml.cc
+++ b/lib/ml.cc
@@ -928,7 +928,9 @@ bool  equal (MNode* a, MNode* b) {
            case MNode::MC_NIL:
                return true;
            case MNode::MC_CONS:
-               if (a->car () == b->car () && a->cdr () == b->cdr ())
+//             if (a->car () == b->car () && a->cdr () == b->cdr ())
+               if (equal (a->car (), b->car ())
+                   && equal (a->cdr (), b->cdr ()))
                    return true;
                else
                    return false;
index 6268554..81306f6 100644 (file)
@@ -517,7 +517,7 @@ MNode*  ml_object_eq (MNode* cell, MlEnv* mlenv) {
 Check if all args are the matching lisp object.
 
 */
-//#AFUNC       ==      ml_object_eq
+//#AFUNC       ==      ml_object_equal
 //#WIKIFUNC    ==
 MNode*  ml_object_equal (MNode* cell, MlEnv* mlenv) {
     MNode*  arg = cell->cdr ();