Sfida lanciata!

2 07 2009

google_translate.gif Translate To English!

Questa volta sono qui per lanciarvi una sfida! Ovviamente sarà una “competizione” costruttiva (ne usciremo tutti vincitori!).

L’idea mi è venuta da un messaggio che ho inviato io stesso su Twitter: come calcolare gli anni bisestili in newLisp.
Bene, l’idea è semplice: inviatemi…

1) Una funzione, più corta possibile (fatto in newLisp ovviamente!) per calcolare l’anno bisestile (in pure “stile” Twitter,  dove ogni singolo carattere è preziosissimo!)

2) Fare un altro programma che calcola e mostra SOLO anni bisestili dei primi 1000000 anni di vita (da 0 a 1000000). Si, avete capito bene: il primo MILIONE di anni!

Ripeto: non voglio una corrispondenza completa, ma SOLO gli anni effettivamente bisestili!

Gli anni non dovranno essere mostrati a video, ma memorizzati in una lista.

Esempio:

> (setq anni '()) (dotimes (i 50) (if (leap i) (push i anni -1)))
> anni
(0 4 8 12 16 20 24 28 32 36 40 44 48)

Nell’esempio, la lista anni contiene gli anni bisestili dei primi 50 anni (0->50). Bene: fate lo stesso, il più velocemente possibile, con il primo milione di anni  :-)

Vi ricordo che per misurare le performance, newLisp offre la comoda funzione (time).

Mandatemi i vostri risultati sotto forma di commenti a questo articolo!

Buon lavoro!