newLISP per Windows

Anche se io sono un affezionato e completamente (OK, quasi) soddisfatto utente di Linux (e in particolare di Ubuntu) so benissimo che la stragrande maggioranza del mondo usa Windows, nelle sue varie confezioni. È una delle cose di cui prendere atto anche se non riuscirò mai a capire, come non riesco a spiegarmi perché della sproporzione di chi preferisce esprimersi in inglese o cinese invece di usare il piemontese (quello della mia zona, ben inteso, quelli di Alessandria sono già inintelligibili).

Allora ecco un’ulteriore puntata rivolta (almeno nella parte iniziale) agli utenti Windows. Dopo aver raccontato loro quasi tutto quello che so di Python offro loro un mondo completamente diverso: il Lisp.

Python è diventato uno dei linguaggi di programmazione dei più usati, in continua crescita, il suo creatore rrKKKrrrwGuido van Rossum lavora da Google e Tiobe lo da in continua crescita; il Lisp è invece un linguaggio antico (il secondo a essere implementato), con una sintassi tutta sua, con un uso più limitato. Ma ha delle freccie nel suo arco, secondo me bisogna provarlo 😀 sono convinto vi piacerà.
Ho già parlato del Lisp in altri post e sarebbe bene dare una lettura a questo qui

Download e installazione

Il sito di newLISP (bello il motto “code like you think“) ha tutto quello che serve e come sito è perfetto: è fatto usando newLISP 😉
(sì lo so è in inglese invece che in piemontese ma dai!)
Facendo click su Downloads accederete all’installatore Win32 installer v.10.2.8. Inoltre conviene aggiornare l’installazione sostituendo newlisp.dll e newlisp.exe con quelli per la versione UTF-8, per gli accenti.
Tutto lì 😀

Prova di newLISP

Apriamo il Prompt dei comandi e digitiamo newlisp si aprirà l’interprete newLISP e, interattivamente, otterremo qualcosa come questo OPS! sto ripetendo quello già detto nel post citato sopra, andate a vedere là.

Un esempio d’uso di newLISP: tutti i numeri primi minori di 10 milioni

Ma mica posso finire qui: il post sarebbe troppo breve e per di più con esempi riciclati, presi da cose mie 😦
Riapriamo l’interprete nel Prompt dei comandi e proviamo:

> (factor 42)
(2 3 7)
> (* 37 73)
2701
> (factor 2701)
(37 73)
> (factor 5)
(5)
> (length (factor 42))
3
> (length (factor 5))
1
> (exit)

Ho-ho-ho! (cit.): (factor) scompone l’intero nei suoi fattori primi (roba da prima media, ricordate?); e (length) restituisce, per una lista, il numero dei suoi componenti, per cui se il numero è primo ritorna 1. Quasi quasi mi viene voglia di elencare i primi primi ( 😉 ), diciamo quelli minori di 10 000 000 (10 milioni). Così:

(set 'k 1000)
(set 'm (* k k))
(set 'f-out (open "primes.txt" "write"))
(set 'tstart (time-of-day))
(write-line f-out "2")
(dolist (n (sequence 3 (* 10 m) 2))
    (if (= (length (factor n)) 1)
        (write-line f-out (string n)))
)
(println (- (time-of-day) tstart))
(close f-out)
(exit)

Richiede un tempo di esecuzione di qualche minuto in funzione della macchina e produce un file di output primes.txt di 5 MB abbondanti. Ci sarebbero parecchie cose da dire su questo script, merita un post tutto suo, prossimamente…

Conclusioni
Questo è newLISP, io ne sono innamorato. 😀
Però, attenzione, in certi casi genera assuefazione: la frase dell’introduzione
“… usare il piemontese (quello della mia zona, ben inteso, quelli di Alessandria sono già inintelleggibili)”
nella sua prima stesura era così:
“… usare il piemontese (quello della mia zona (ben inteso) quello dei mandrogni (quelli di Lisandria (che loro chiamano Lisondria), Alessandria) sono già inintelleggibili (tranne Umberto Eco (forse) perché ha studiato a Türin (che sarebbe Torino)))”.

Inoltre qualcuno avrà notato che ad agosto non riuscivo a inserire nel post codice newLISP e adesso sì: il tempo non è trascorso invano! (della serie “e leggersi quel ca**o di manuale!” 8) ).

Posta un commento o usa questo indirizzo per il trackback.

Trackback

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.

%d blogger hanno fatto clic su Mi Piace per questo: