Sub-List

Se alguem já usou o CAR, CADR, CAADR, etc, deve ter sentido falta de recuparar uma lista de elementos no meio da lista, exemplo: ( 1 2 3 4 5 6 ) se eu querer pegar os elementos do 2º ao 4º, temos (3 4 5), mas como fazê-lo?
pode ser assim:
(defun sub-list (lst a b / tmp n)
  (
setq tmp nil
    n   a)
  (
while (>= b n)
    (
setq tmp (append tmp (list (nth n lst)))
      n   (1+ n)))
  tmp)

Nenhum comentário:

Postar um comentário