• Domingo 22 de Diciembre de 2024, 12:10

Autor Tema:  Lisp  (Leído 2590 veces)

orlando84

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Lisp
« en: Sábado 25 de Noviembre de 2006, 19:29 »
0
(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)))

dBase3

  • Miembro activo
  • **
  • Mensajes: 85
    • Ver Perfil
Re: Lisp
« Respuesta #1 en: Sábado 25 de Noviembre de 2006, 19:44 »
0
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.