0

整数のリストのリストがあります:

(setq a '(21 14 35 29 16 28))
(setq b '(15 36 21 17 45 41))
(setq c '(24 21 35 28 17 21))

合計で 50 +/- リストが存在する可能性があります。

別のリストがあります:

(setq me '(17 14 31 21 17 28))

aリストの最初のリストを循環させて、リストの各メンバーを(1回目から)リストから減算したいと思いますme

比較を実行できるように、リストの最初のリストを介してインデックスを作成するにはどうすればよいですか?

4

1 に答える 1

1

あなたが何を求めているのか理解しているふりをしたら...

(setq 
    a  '(21 14 35 29 16 28)
    b  '(15 36 21 17 45 41)
    c  '(24 21 35 28 17 21)
    me '(17 14 31 21 17 28)
    lst (append a b c)
)

(setq result 
    (vl-remove-if
       '(lambda (x) (member x lst))
        me
    )
)    

結果の値は(31)です

その^があなたが探していたものである場合、より一般的な解決策:

(defun foo ( lst listOfLists )
    (   (lambda ( grandList )
            (vl-remove-if
               '(lambda (x) (member x grandList))
                lst
            )
        )
        (apply 'append listOfLists)
    )        
)

(foo me (list a b c)) 

(31)を返します

于 2010-12-07T04:00:53.930 に答える