Clojure es un lenguaje bastante complejo (a mi parecer), olvida todo lo aprendido en lenguajes como C, en Clojure crear un bucle o una condición es muy distinto.
Estructuras de control
- Secuencial
- Selectiva
- Repetitiva
Es la más básica.Consiste en escribir las sentencias de arriba hacia abajo.
(comment
Esto es un comentario
multilínea
)
(println "Hola usuario")
2. Selectiva.
Consiste en elegir caminos de acción mediante condiciones falsas y/o verdaderas.
puts("Tu nombre")
gets nombre
si "Ernesto"==nombre entonces:
"Eres Ernesto"
otro:
"No eres Ernesto"
En código Clojure sería:
(import '(java.util Scanner))
(def scan (Scanner. *in*))
(println "Tu nombre: ")
(def nombre (.nextLine scan))
(def resultado(if (="Ernesto" nombre) "Eres Ernesto" "No eres Ernesto"))
(println resultado)
3. Repetitiva
Consiste en controlar el número de veces que se ejecuta una sentencia.
i=0
mientras i<5:
"imprime no. " i
i++
En código Clojure sería:
(loop [cont 0]
(when (< cont 5)
(println "no. " cont)
(recur (inc cont))))
Si los anteriores ejemplos te parecen extraños existen lenguajes más extraños como Chef que puede provocar dolores de cabeza al tratar de entenderlo.
Links
http://kottke.org/08/12/the-chef-programming-language
http://www.dangermouse.net/esoteric/chef.html
http://en.wikipedia.org/wiki/Esoteric_programming_language
Comentarios
Publicar un comentario