domingo, 17 de octubre de 2010

LISP - Potencia de un número

Laboratorio de Lenguajes de Programación - Semana 6

Vimos como escribir algunas funciones muy básicas en LISP, esta vez haremos algunas un poco mas complicadas, recuerden que hay que tener mucho cuidado con los espacios que pasamos ya que LISP es muy sensible a ello.

Potencia de un número

Primero el nombre de la función y las dos variables que necesitamos, una para la base y otra para el exponente:
(defun potencia (X Y)...

Despues establecemos las posibles causas que puedan marcarnos un error, es decir, si la base y el exponente son ceros:
...(cond ((and (= X 0)(= Y 0)) 'Error)...

Despues los casos base:
...((= X 0)0) ((= Y 0) 1)...

Por ultimo el bloque recursivo:
...(T(* X (potencia X (- Y 1))))))

FUNCIÓN COMPLETA: (defun potencia (X Y) (cond ((and (= X 0)(= Y 0)) 'Error) ((= X 0)0) ((= Y 0)1) (T(* X (potencia X (- Y 1))))))

Este es el resultado en la terminal, calculando la potencia de 2 elevado a la 5, y la potencia de 3 elevado a la 4:



SALUDOS ^_^ !

1 comentario: