1

Lisp の関数 remove-duplicates は、(abcd) のような単純なリストに対してのみ機能します。私の質問は、ネストされたリストを含むリストから重複した要素を削除する方法です。たとえば

次のようにネストされたリストを持つリストがあります: ( (0 1) (0 2) (0 1) (0 3) )

上記のリスト内で2回繰り返される(0 1)リストの1つを削除して、次を取得します。

( (0 1) (0 2) (0 3) )

4

1 に答える 1

7

に与える:test #'equalremove-duplicates、それはあなたが望むことをします。

CLHS: Satisfying a Two-Argument Testで見られるように、指定されていない場合の:testデフォルトは#'eqlであり、2 つのリスト likeは、同じリスト( )(0 1)でないeql限りそうではありません。eq

CL-USER> (remove-duplicates '((0 1) (0 2) (0 1) (0 3)) :test #'equal)
((0 2) (0 1) (0 3))
于 2013-01-23T08:57:05.917 に答える