Software

Test: sviluppo, è arrivata l’ora di Clojure

Redazione | 4 Agosto 2014

Software

In Clojure, come in Scala, l’approccio funzionale è morbido, nel senso che il linguaggio non impedisce a una funzione di […]

In Clojure, come in Scala, l’approccio funzionale è morbido, nel senso che il linguaggio non impedisce a una funzione di creare effetti secondari, cioè di alterare i parametri o variabili globali, ma comunque le funzioni di libreria sono prive di effetti secondari. Sta al programmatore scegliere quando mantenere la disciplina di un approccio puramente funzionale e quando, invece, optare per un approccio più pragmatico, cosa che non ci sentiamo di deprecare, perché avere delle scelte è una buona cosa, così come è una buona cosa avere un linguaggio sicuro.

clojure logo 2Parlando di funzioni, osserviamo che gli argomenti sono tipizzati e Clojure supporta il polimorfismo attraverso una parola chiave specifica defmulti, invece di def. In generale, le funzioni accettano argomenti non tipizzati, ma la valutazione degli argomenti può portare a errori di runtime, come in questo esempio.

user=> (+ "ciao" "michele")

ClassCastException java.lang.String cannot be cast to java.lang.Number clojure.lang.Numbers.add (Numbers.java:126)

Sperimentare con Clojure

Muovere i primi passi è semplice. Non è nemmeno indispensabile scaricare l’ambiente clojure, anche se nella versione slim è più piccolo di un mp3. Si può cominciare con un ambiente di esecuzione Clojure, un Repl (read eval print loop) in gergo Lisp, online all’indirizzo https://tryclj.com.

L’ambiente di esecuzione guida l’utente nei suoi primi passi con il linguaggio in modo soffice, secondo uno schema reso famoso dal programmatore passato alla storia come Why the lucky stiff con Ruby.

Scaricare l’ambiente Clojure non è difficile. Le istruzioni sono alla pagina clojure.org/downloads. Chi non è interessato ai sorgenti può scaricare l’archivio jar con la distribuzione all’indirizzo build.clojure.org.

La versione “magra” del software è meno di un MByte, mentre l’archivio completo ne richiede tre e mezzo.

Per eseguire il Repl si può usare la riga di comando:

java -cp clojure-1.6.0.jar clojure.main

nella cartella in cui si è scaricato l’archivio jar.

La somma di due numeri è in perfetto stile Lisp

> (+ 3 3)
6

Provando una divisione scopriamo il supporto di Clojure per i numeri razionali

> (/ 10 3)
10/3
> (/ 10 3.0)
3.3333333333333335

Solo se forziamo un parametro in virgola mobile avremo un risultato in virgola mobile.

➜ Continua a leggere: Clojure, un ambiente da conoscere

< Indietro Successivo >