Common Lispでこれを達成するには?論理リストから選択します。 Common Lisp
(logselect (t nil t) (list1 list2 list3)) ---> (list1 list2)
私は以下の機能をコーディングしましたが、もっと良い方法があると思います(組み込み機能なのでしょうか?)。
(defun logselect (loglist lista)
(let ((listaL) (maskL) (toremove))
(setq listaL (mapcar #'list lista))
(setq maskL (mapcar #'cons loglist listaL))
(setq toremove (mapcar #'(lambda (x) (car (and (car x) (cdr x)))) maskL))
(remove nil toremove)
)
)
ありがとうございます。
(log1lect(tnil t)(list1 list2 list3))--->(list1 list3) – Francisco