You seem to want to implement a search binary tree. Take a look at 'idx it already does that for you. A possible source of the trouble could be related to 'cadr in '(pp 'rooms).
Also what project are you working on? (Just curious) 2017-04-01 7:46 GMT+02:00 Christopher Howard <[email protected] >: > Hi list, I'm a little confused at a bug in my code. > > I have this procedure 'rooms that returns some data: > > : (rooms) > -> (("threshold" (("long-description" "You stand in front of a wooden > door, reputed to be the home of one Dr. Theobold. The door has a small > keyhole.") NIL NIL 1)) NIL NIL 1) > > Now, if I run a command (another aa-search) on that data (copy and > pasted) I get the result I expect: > > : (aa-search '(("threshold" (("long-description" "You stand in front of > a wooden door, reputed to be the home of one Dr. Theobold. The door has > a small keyhole.") NIL NIL 1)) NIL NIL 1) "threshold") > -> ("threshold" (("long-description" "You stand in front of a wooden > door, reputed to be the home of one Dr. Theobold. The door has a small > keyhole.") NIL NIL 1)) > > However, if I run this command, I get a different result: > > : (aa-search (rooms) "threshold") > -> NIL > > Q: Should not the results be the same? > > Here are definitions of the various functions: > > : (pp 'rooms) > (de rooms NIL > (cadr (aa-search World "rooms")) ) > > : (pp 'aa-search) > (de aa-search (Tree Key) > (unless (not Tree) > (if (== Key (car (aa-kv Tree))) > (aa-kv Tree) > (if (< Key (car (aa-kv Tree))) > (aa-search (aa-left Tree) Key) > (aa-search (aa-right Tree) Key) ) ) ) ) > -> aa-search > > > -- > https://qlfiles.net > -- > UNSUBSCRIBE: mailto:[email protected]?subject=Unsubscribe >
