Ejercicios de LISP - PowerPoint PPT Presentation

1 / 8
About This Presentation
Title:

Ejercicios de LISP

Description:

Cargar ficheros: (load 'c: ..fichero.lsp') EJERCICIOS CON LISTAS (I) ... Como efecto lateral a la F le queda asignado el valor 2 ... – PowerPoint PPT presentation

Number of Views:199
Avg rating:3.0/5.0
Slides: 9
Provided by: siaEu
Category:

less

Transcript and Presenter's Notes

Title: Ejercicios de LISP


1
Ejercicios de LISP
2
Intérprete CLISP
  • Web para descargarse el Intérprete CLISP
    http//clisp.cons.org/
  • Ejecutable clisp.exe
  • Editar ficheros con extensión .LSP
  • Cargar ficheros (load c\ ..\fichero.lsp)

3
EJERCICIOS CON LISTAS (I)
  • Calcular el valor de C después de la evaluación
    de la expresión
  • (SETQ A 3 C ( (SETQ B 4) ( A B)))
  • Solución 11
  • Evaluar (SETQ F (CAR '(2 3 4))
  • Solución 2
  • Como efecto lateral a la F
    le queda asignado el valor 2
  • Obtener la C en la lista ((A B) (C D) (E F))
  • (SETQ L ' ((A B) (C D) (E F)))
  • (CAR (CAR (CDR L))
  • Asignar la C en la lista anterior a un átomo
    simbólico
  • (SETQ ELEMENTO (CAR (CAR (CDR L))))
  • Asignar la D en la lista anterior a un átomo
    simbólico
  • (SETQ ELEMENTO (NTH 1 (NTH 1 L)))
  • ó (SETQ ELEMENTO CAR ((CDR (CAR (CDR
    L)))))

4
EJERCICIOS CON LISTAS (II)
  • Obtener la (E F) en la lista ((A B) (C D) (E
    F))
  • (NTH 2 L)
  • Asigna a un átomo simbólico la lista ((A))
  • (SETQ LISTA (CONS '(A) NIL))
  • Asigna a un átomo simbólico la lista (A)
  • (SETQ LISTA (CONS 'A NIL))
  • Construye utilizando únicamente átomos
    simbólicos y la función CONS la lista ( (1 ( (3)
    4) ) )
  • (SETQ LISTA1 (CONS ' (3) (CONS 4 NIL)))
  • (SETQ LISTA2 (CONS 1 (CONS LISTA1 NIL)))
  • (SETQ LISTA3 (CONS LISTA2 NIL))
  • Construye la lista anterior de otra forma
  • (LIST (LIST 1 (LIST '(3) 4)))

5
EJERCICIOS CON LISTAS (III)
  • Decir cuál es el resultado que se obtiene al
    evaluar la expresión
  • (APPEND (CONS NIL NIL) (LIST NIL))
  • Solución (APPEND (NIL) (NIL)) gt (NIL
    NIL)
  • Decir cuál es el resultado que se obtiene al
    evaluar la expresión
  • (LENGTH (LIST (SETQ N 43)))
  • Solución 1
  • Decir cuál es el resultado que se obtiene al
    evaluar la expresión
  • (LENGTH '(SETQ N 43))
  • Solución 3

6
EJERCICIOS CON FUNCIONES
  • Definir una función en lisp que recibe una
    lista por parámetro y la
  • modifica, añadiéndole como primer elemento
    su tercer elemento.
  • (defun tercer_elto (lista)
  • (cons (nth 2 lista) lista) )
  • Definir una función en lisp que recibe por
    parámetro una lista y un átomo,
  • modifica la lista sustituyendo su tercer
    elemento por el átomo.
  • (defun change_elto (lista e)
  • (append (list (nth 0 lista) (nth 1
    lista) e)
  • (nthcdr 3 lista) ) )
  • Definir una función en lisp que calcule el
    determinante de una matriz 22.
  • Representar la matriz ( (a11 a12) (a21
    a22))
  • Calcular determinante ( - ( a11 a22) (
    a12 a21))
  • (defun determinante (lista)
  • (- ( (car (car lista)) (car (cdr
    (car (cdr lista)))) )
  • ( (car (cdr (car lista))) (car
    (car (cdr lista))) ) ) )

7
EJERCICIOS CON FUNCIONES RECURSIVAS (I)
  • Recursividad numérica. Definir la función
    POTENCIA de un número tal
  • que (POTENCIA N1 N2) ? N1 ,
    cumpliéndose que
  • 0 ?Indeterminado, 0 ? 0,
    x ? 1
  • Ej. (POTENCIA 2 3) -gt 8
  • Recursividad N1N2 N1 N1(N2 - 1)
  • Condición de terminación N2 0
  • (defun potencia (N1 N2)
  • (cond ( (and ( N1 0) ( N2 0))
    Indeterminado)
  • ( ( N1 0) 0)
  • ( ( N2 0) 1)
  • (T ( N1 (potencia N1 (-
    N2 1)))) ) )
  • Recursividad de listas. Definir la función que da
    la longitud de una lista.
  • (defun longitud (lista)
  • (cond ( (null lista) 0)
  • ( T ( 1 (longitud (cdr
    lista))) ) ) )

N2
x
0
0
8
EJERCICIOS CON FUNCIONES RECURSIVAS (II)
  • Recursividad de listas. Redefinir la función NTH.
  • Ej. 2 (1 2 3 4) -gt 1 (2 3 4) -gt 0 (3 4) -gt
    3
  • Condición de terminación n 0
  • Controlamos que la lista sea null
  • (defun nth_bis (n lista)
  • (cond ( (null lista) nil)
  • ( ( n 0) (car lista))
  • ( T ( nth_bis (- n 1) (cdr
    lista))) ) )
Write a Comment
User Comments (0)
About PowerShow.com