lunes, 21 de enero de 2008

Extrae desde dos posiciones en Lenguaje Scheme

Escriba una función extrae la cuál debe constar de tres argumentos: una lista, un número de posición inicial y otro número de posición final. La función deberá devolver la lista formada sólo por las letras comprendidas entre la posición inicio y final. En el caso que la lista esté vacía o bien inicio sea mayor que final se devolverá la lista vacía. Si final sobrepasa el tamaño de la lista se devolverán todos los elementos posibles


(define (extrae Lista1 inicio final)
(if (zero? final) null
(if (zero? inicio) null
(if (null? Lista1) Lista1
(if(= inicio 1) (cons (car Lista1) (extrae (cdr Lista1) 1 (- final 1)))
(extrae (cdr Lista1) (- inicio 1) (- final 1)))))))