2011-09-28 16 views
5

Według wpisu CLHS dla funkcji przecięcia (http://www.lispworks.com/documentation/HyperSpec/Body/f_isec_.htm):Typowe zachowanie funkcji seplenienia, niezdefiniowanej przecięcia?

dla każdej pary, które satifies testu dokładnie jeden z dwóch elementów pary zostaną wprowadzone w wyniku.

Moim problemem jest to, że muszę wiedzieć którym jeden z dwóch elementów z pary zostaną wprowadzone w wyniku, co ma znaczenie, gdy na przykład :key #'car służy do wyodrębniania argumenty do testowania przeciwko, ponieważ cdr może być inny. Chciałbym mieć gwarancję, że zawsze pierwszy lub zawsze drugi element zostanie umieszczony w wyniku. Czy brakuje mi czegoś lub jest to tylko nieokreślone zachowanie, więc nie powinienem go używać w mojej sprawie?

Odpowiedz

5

intersection po prostu nie gwarantuje, że chcesz; implementuje set-teoretyczne skrzyżowanie z wieloma dodatkami, ale po prostu nie jest to dodatkowe. Będziesz musiał rzucić własną.

Powiązane problemy