SoloCodigo

Programación Específica => Inteligencia Artificial => Mensaje iniciado por: orlando84 en Sábado 25 de Noviembre de 2006, 19:29

Título: Lisp
Publicado por: orlando84 en Sábado 25 de Noviembre de 2006, 19:29
(defun inicio()
(setq A ())
(setq c 0)
)

(defun ingresovalores()
(print "Ingrese un número: ")
(setq c (+ c 1))
(setq d (read))
(setq A (cons d A))
)

(defun mostrarpositivos()
(setq b 0)
(do-while (< b c)
(cond ((> (nth b A) 0) (print (nth b A)) (setq b (+ b 1)))

   (t (setq b (+ b 1)))
))
(print " ")
)

quisiera saber xq cuando ejecuto este programa y hago el llamado  ala funcion mostrarpositivos
me sale Undefined function break (cond ((> (nth b A) 0) (print (nth b A)) (setq b (+ b 1))) (t (setq b (+ b 1)))
Título: Re: Lisp
Publicado por: dBase3 en Sábado 25 de Noviembre de 2006, 19:44
La verdad, es que aunque parezca increible, pero he comprobado los parentesis y los tienes bien.
Veo q lo realmente difícil de este lenguaje es cuadrar los paréntesis porque la sintaxis facilita(seguro q tienen una herramienta q te los controla pero no me gusta como se ven).

En mi ignorancia lo unico que veo que no me cuadra y no se si influye es que tienes un salto de linea dentro de la función que no tienes en las otras que me imagino que es lo que está mal  y si está bien rompe con la estética del programa  :rolleyes: ;).

Código: Text
  1. (cond ((&#62; (nth b A) 0) (print (nth b A)) (setq b (+ b 1)))
  2. aquí sobra esta linea quitala y prueba ..;)
  3. (t (setq b (+ b 1)))
  4.