Open inabajsk opened 4 years ago
This problem has already been verified during the ansi-test project, and is fixed in the cl-compatible branch https://github.com/euslisp/EusLisp/pull/313.
However, because it changes previous behavior it will need a lot of practical testing before we can actually include the fixes on the master branch.
(On a related note, this and others cl-compatible fixes are also included in my development branch for the resumption system, which I am planning to make available as another branch as soon as I can get it stable.
(assoc 'b '(((a) 1) ((b) 2)) :key #'car) -> ((b) 2) となるべきところ, eusgl$ (assoc 'b '(((a) 1) ((b) 2)) :key #'car) ->nil となる.現状では, eusgl$ (assoc 'b '(((a) 1) ((b) 2)) :key #'caar) ->((b) 2) とよけいにcarを与える必要があり,間違っている.
eus/lisp/c/lists.cのSUPERASSOC の if (key==NIL) temp=ccar(target); else temp=call1(ctx,key,target); のところが, if (key==NIL) temp=ccar(target); else temp=call1(ctx,key,ccar(target)); となれば,大丈夫なはず.