Mas funciones de Lisp
;realizar una funcion lisp q permita calcular el producto de 2 numeros usando la multiplicacion russa (defun alg-ruso (n1 n2) (DO ( (ACUM 0) ) ( (ZEROP n1) ACUM) (setq ACUM (IF (ODDP n1) (+ ACUM n2) ACUM)) (setq n1 (floor (/ n1 2.0)) ) (setq n2 (* n2 2)) ) ) ;REDIFINIR LA FUNCION LENGHT PARA CALCULAR LA LONGITUD O EL NUMERO DE ELEMENTOS DE UNA LISTA (defun long-lista (Lista) (DO ( (LAux Lista (cdr LAux)) (N 0 (1+ N)) ) ((NULL LAux) N) ;si la condicion es NIL, pasa a este lado... ) ) ;Funcion que invierte los valores de una lista (defun reves (Lista) (DO ( (LAux Lista (cdr LAux)) (LInv nil (cons (car LAux) LInv)) ) ((NULL LAux) LInv) ) )
Comentarios
Publicar un comentario