Sorting odd and even numbers in F#
An Italian Microsoft Evangelist posted today a small programming exercise on his blog, presenting the solution with LINQ.
The exercise says (translated from Italian by me):
Given a list of unordered numbers (for instance 1, 7, 9, 2, 3, 4, 3, 4, 2, 3, 4, 5, 2, 0, 9), create a new list with all even numbers first and then all the odd ones.
The proposed solution also goes a little further, showing not only how to split the original list into odd and even numbers, but also putting them in the correct order, thus returning "022244413335799".
The following is the C# code used:
List<int> elenco = new List<int> { 1,7,9, 2, 3, 4, 3, 4, 2, 3, 4, 5, 2, 0, 9 };
var pariEdispari = elenco.OrderBy(s => s % 2 != 0);
var pariEdispariOrdinati = elenco.OrderBy(s => s % 2 != 0).ThenBy(s => s);
foreach (var item in pariEdispariOrdinati)
{
Console.WriteLine(item);
}
And now let's compare it with an F# approach:
#light let numbers = [ 1; 7; 9; 2; 3; 4; 3; 4; 2; 3; 4; 5; 2; 0; 9 ] let result = numbers |> List.sort Int32.compare |> List.partition (fun x -> x % 2 = 0) print_any ((fst result) @ (snd result))
As you can easily see, everything is done at line 4, where we apply twice the pipeline operator (|>).
This operator allows to chain functions, passing the output of one of them to the next one.
The same line could be written as:
List.partition (fun x -> x % 2 = 0) (List.sort Int32.compare numbers)
Line 6 is only used to print the result, but it has to take into account that the output of List.partition is a tuple, so we have to concatenate the two elements that can be retrieved with the fst (first) and snd (second) functions.
The @ operator actually concatenates the two lists.
I'm not sure that this is the best (and most elegant) solution, but I think that it is way ahead than any imperative solution, do you agree with me?
fsharp.it, il nuovo portale su F#
Qualche tempo fa anticipavo la mia intenzione di avviare un nuovo blog più tecnico e adesso quel momento è arrivato!
Ho aperto un portale tematico dedicato ad un tema abbastanza specialistico nel mondo dell'informatica ma che sta acquisendo sempre più popolarità.
Si tratta della programmazione funzionale ed in particolare di F#, il linguaggio basato su questo paradigma sviluppato da Microsoft per contrastare le alternative più diffuse, principalmente Erlang e Haskell.
So che per molti di voi quello che sto scrivendo non ha assolutamente senso, ma se vi occupate di informatica vi consiglio almeno di dare un'occhiata a questo nuovo mondo, magari partendo proprio dagli articoli del portale.
L'indirizzo è www.fsharp.it ed i contenuti sono scritti in lingua inglese, ma questo non può essere un freno per chi lavora nel settore.
Dategli un'occhiata e poi magari lasciate un commento, chissà che un giorno non mi ringrazierete!
I migliori 10 plugin per WordPress
Una delle caratteristiche più utili di WordPress è la sua estensibilità mediante un sistema di plugin.
Nel repository ufficiale se ne trovano circa 1500, tuttavia cercando su Internet ne esistono per ogni necessità e comunque è sempre possibile scriverne di propri seguendo la documentazione che viene fornita liberamente sempre sul sito ufficiale.
Più di una volta ho pensato di scrivere un plugin per una mia necessità specifica, ma ogni volta una breve ricerca mi ha permesso di trovare un plugin che facesse per me.
Attualmente in questo blog ho installato 10 plugin, che secondo me potranno fare comodo a molti di voi.
Ovviamente è possibile che me ne stia sfuggendo qualcuno imperdibile, quindi se ne avete da consigliare vi prego di lasciare un commento a questo post.
Ecco qui la descrizione dei 10 plugin di questo blog:
- Akismet: si tratta di un plugin fondamentale per ogni blog. Il suo scopo è controllare ogni commento inserito tramite i web service di Akismet e bloccare lo spam.
- Contact Form II: lo potete vedere in azione nella pagina dei Contatti. Grazie ad esso è possibile inserire un form di contatti nel proprio blog con una riga di codice.
- Feedburner Feedsmith: ridirige i feed originali di WordPress a quelli di FeedBurner. Il risultato è quello che vedete nel feed di questo blog.
- Optimal title: ha un compito molto semplice, cambiare l'attributo title delle pagine inserendo prima il titolo dell'articolo e poi il nome del blog. Può sembrare una cosa da poco, ma permette di guadagnare molto in termini di posizionamento sui motori di ricerca.
- Related posts: restituisce una lista di post correlati a quello attualmente letto dal visitatore, il tutto sfruttando la correlazione fra la keyword.
- Simple tags: estende le funzionalità di WordPress relative al tagging con autocompletamento, suggerimento dei tag, tag cloud, post correlati e editing di massa dei tag.
- WordPress Automatic Upgrade: ho già parlato di questo plugin che fornisce un sistema per aggiornare automaticamente un blog WordPress all'ultima versione disponibile.
- WordPress Database Backup: backup on-demand e pianificato del blog. Permette di inviare i dati via mail o salvarli in una cartella sul server.
- WP Grins: aggiunge le emoticon cliccabili al form per l'inserimento dei commenti.
- WPvideo: permette di inserire facilmente dei video all'interno delle pagine. Fornisce inoltre un link per scaricare il video usando DownThisVideo!
Che altro devo installare?
Un anno da blogger
Dopo 200 post scritti e quasi 500 commenti direi che è arrivato il momento di tirare le somme del mio primo anno da blogger che oggi giunge al termine.
Di sicuro per me è stato molto piacevole condividere pensieri e progetti con voi che leggete e mi auguro che sia stato interessante anche per chi sta dall'altra parte.
Il numero dei visitatori è in continuo aumento e potrei anche lasciare il mio posto di lavoro e vivere nel lusso con i 5 euro al mese di rendita degli annunci pubblicitari di Google Adsense!
I miei buoni propositi per l'anno che viene prevedono di continuare sulla buona strada che pare io stia percorrendo e magari di avviare un nuovo blog/progetto che da un pò mi frulla in testa.
Non dico altro ma spero che ne riparleremo presto, per adesso vi faccio i miei più sentiti auguri di buon anno.
Ovviamente i vostri suggerimenti sono sempre ben accetti, ad esempio preferite gli articoli che trattano argomenti più "tecnici" oppure quelli un pò più frivoli?
A presto!
Buon Natale!
Ci vediamo fra qualche giorno, io sono sicuro che sarò abbastanza impegnato a combattere con panettoni, pranzi di Natale e cenoni!
E al ritorno si festeggia anche il compleanno di questo blog...

Google mi ha assegnato PageRank 5!
Ultimamente nella blogosfera si parla molto del recente aggiornamento del PageRank di Google, quell'amato/odiato valore compreso fra 0 e 10 che viene usato dal motore di ricerca per classificare i siti.
Era passato molto tempo dall'ultimo aggiornamento del PageRank, tanto che questo sito non era mai stato ancora valutato dalla sua nascita, ed è anche per questo che mi sono fortemente stupito quando ho scoperto che mi era stato assegnato un rating di 5/10, che è ottimo, soprattutto per un blog come questo.
Comunque non è tutto rose e fiori, molti blogger (ad esempio Napolux) sono stati penalizzati per aver inserito nelle proprie pagine dei link a pagamento, e sempre più gente chiede di abolire il PageRank.
Speriamo non lo facciano presto, vorrei godermi ancora un pò questo risultato!
Aria di cambiamenti
Probabilmente avrete notato il nuovo design del mio blog, ma si tratta solo di una delle novità !
Innanzitutto mi sono accorto che questo sito aveva ben poco a che fare con le attività della Unozero, e quindi ho deciso di registrare il dominio claudiocherubino.it, che è il nuovo indirizzo di questo blog.
Se siete giunti qui usando il vecchio indirizzo (blog.unozero.net oppure www.unozero.net/blog) vi prego di aggiornare i vostri bookmark.
Per lo stesso motivo, ho cambiato il nome "Unozero Blog" in "Il Blog di Claudio Cherubino".
Come seconda novità , anche se questa si nota poco, ho approfittato dell'aggiornamento per passare all'ultima versione di WordPress, la 2.2.
Poi, ma questo avrà sicuramente attirato la vostra attenzione, c'è il nuovo template.
Secondo me è ancora più bello del precedente, spero di non aver fatto troppi casini nel trasferire i contenuti, se notate qualcosa di strano per favore avvertitemi.
Che altro dire? Spero che queste novità , per lo più estetiche, siano gradite, aspetto i vostri commenti!
Fletto i muscoli e sono nella blogosfera!
Ciao a tutti,
un anno nuovo sta per iniziare e io ho deciso di lanciarmi in questa nuova avventura...
In questo blog parleremo di informatica e nuove tecnologie, ma anche di tutte quelle cose strambe che si trovano sul web e che mi colpiscono. Alla fine il sito è mio e parlo di quello che voglio, no?



