;;; Funcao que recebe uma lista e duas posicoes I e K e ;;; retorna a parte da lista original entre as posicoes ;;; I e K, inclusive. As posicoes comecam de 1. ;;; ;;; Casos extremos: ;;; se I <= 0, retorna de 1 a K ;;; se K > comprimento da lista, retorna de I ao final ;;; se I > K, retorna lista vazia ;;; ;;; Nota: usa funcao como funcao auxiliar a split do ;;; problema p17. (defun slice (lista i k) (cond ((<= i 1) (split-up-to lista k)) ((null lista) lista) (t (slice (cdr lista) (1- i) (1- k))) ) )