Ir al contenido principal

Entradas

Mostrando las entradas etiquetadas como Lisp

Funciones Lisp - parte 2

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) ) )

Funciones Lisp

Mis primeras funciones en Lisp, ademas de algunos libros muy buenos para iniciarse en el mundo del lenguaje de inteligencia artificial Lisp ;Hello World (defun saludo() (format t "Ingresa tu nombre : ") (setq Nombre (read)) (format t "Hello World ~A." Nombre) 'OK ) ;funcion que devuelve el valor a nivel de Byte (defun nibble (NIB) (IF (numberp NIB) (COND ((= NIB 0) '0000 ) ((= NIB 1) '0001 ) ((= NIB 2) '0010 ) ((= NIB 3) '0011 ) ((= NIB 4) '0100 ) ((= NIB 5) '0101 ) ((= NIB 6) '0110 ) ((= NIB 7) '0111 ) ((= NIB 8) '1000 ) ((= NIB 9) '1001 ) (T 'NUMERO_ES_MAS_DE_UN_DIGITO ) ) (COND ((EQUAL NIB 'A) '1010 ) ((EQUAL NIB 'B) '1011 ) ((EQUAL NIB 'C) '1100 ) ((EQUAL NIB 'D) '1101 ) ((EQUAL NIB 'E) '1110 ) ((EQUAL NIB 'F) '1111 ) (T 'DIGITO_DESCONOCIDO ) ) ) ) ;mostrar los primeros n numeros al cuadrado (defun serie-N-cuad(Lim) (DO ( (i 1 (1+ i)) ) ((= i Lim) (forma...