Buscar
Social
Ofertas laborales ES
« ¡Pruebe Clojure en línea hoy mismo! | Main | Comencemos con un saludo »
viernes
dic232011

Intro a clojure

El lenguaje de programación Clojure lo podemos definir bajo las siguientes caracteristicas:
  • Es un dialecto de Lisp
  • Permite el uso de Progrmación Funcional (Functional Programming)
  • Es simbiótico con la bien establecida plataforma de Java (JVM)
  • Diseñado desde su incepción para la concurrencia

Su sitio oficial es http://clojure.org/

Este lenguaje para la JVM es uno de los más dispares al lenguaje Java. Esto último implica que verdaderamente hace ver nuestro lenguaje predilecto Java (o bien C#, Python, Ruby, etc) bajo una perspectiva totalmente diferente y provoca ese re-pensar tan interesante.

Una de las promesas y aspectos escencial de este lenguaje es su elegancia. Esta elegancia radica en la brevedad de los programas que se producen una vez que se aprende lo básico e idíomatico del lenguaje.  Programas cortos son baratos en su construcción, baratos al ser deployados, y baratos en mantenimiento. Todo esto último es verdad cuando los programas son concisos. 

Ejemplo:

public class StringUtils { 
  public static boolean isBlank(String str) {   
    int strLen; 
    if (str == null || (strLen = str.length()) == 0) {
      return true; 
    }
    for (int i = 0; i < strLen; i++) { 
      if ((Character.isWhitespace(str.charAt(i)) == false)) { 
        return false; 
      } 
    }
    return true; 
  }
}

en Clojure:

(defn blank? [str] (every? #(Character/isWhitespace %) str))
Aunque Clojure es un dialecto de Lisp, es ante todo un lenguaje pensado para ser práctico.

 

 

 

Reader Comments (1)

Aunque ha pasado mucho tiempo desde este mensaje, lo acabo de leer, y no me resisto a hacer un comentario.

En Java se puede resolver así:

public static boolean isBlank(String str){
return str==null || str.isEmpty() || str.trim().isEmpty();
}

diciembre 10, 2012 | Registered Commenterchoces

PostPost a New Comment

Enter your information below to add a new comment.
Author Email (optional):
Author URL (optional):
Post:
 
Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>