remove-n

Uma rotina pra complementar a SUB-LIST que postei outro dia:


; remove somente os (n-esimos) valor(es) da lista
(defun remove-n (n lst / new nl)
(
setq new nil
nl 0
n (if (listp n) n (list n))
n (vl-sort n <))
(
repeat (length lst)
(
if (/= nl (car n))
(
setq new (append new (list (car lst))))
(
setq n (cdr n)))
(
setq lst (cdr lst)
nl (1+ nl)))
new)


esta rotina remove os N-ésimos elementos de uma lista, exemplo:
(remove-n ‘(2 3 4) ‘(“a” “b” “c” “d” “e” “f”))
retorna : (“a” “b” “f”)

Deixe um comentário

Carrinho de compras
Rolar para cima