June 2006 Blog Posts

Generics e tuple

Il .Net Framework 2.0 non dispone di un tipo "tupla", inteso come una sequenza finita (non necessariamente omogenea) di valori di un certo tipo. Un tipo del genere potrebbe essere utilizzato in molti contesti: quando devo rappresentare coppie (triple, quadruple, ..., n-uple) di valori, quando un metodo deve tornare più valori e non posso o non voglio utilizzare i parametri di tipo out, ...Grazie all'utilizzo dei Generics e con un po' di overload è possibile implemetare un tipo Tuple che faccia al caso.Es. public interface ITuple : IEnumerable, IComparable<ITuple>{   int Length   { get; }    object this[int index]   { get; set; }} // Tupla vuota. Es. ()public...

posted @ Friday, June 30, 2006 6:23 PM | Feedback (3)

Alessia...

Ieri sera, alle 23, è nata mia figlia Alessia!E' una gioia indescrivibile diventare papà...

posted @ Monday, June 12, 2006 12:40 PM | Feedback (20)

IEnumerable e insiemi ricorsivamente enumerabili

Un insieme ricorsivamente enumerabile (http://en.wikipedia.org/wiki/Recursively_enumerable_set) è tale per cui esiste un algoritmo capace di "snocciolarne" tutti gli elementi. Ad es. l'insieme dei numeri naturali, ovvero i numeri interi maggiori (o uguali) a zero, è ricorsivamente enumerabile perchè esiste un algoritmo in grado di restituirne tutti gli elementi: static IEnumerable<int> Natural(){   for (int i = 0; ; i++)      yield return i;} // ... foreach (int i in Natural())   Console.WriteLine(i);  // 0, 1, 2, ... L'insieme dei numeri naturali ha un numero infinito di elementi. Per un insieme finito è sempre possibile trovare un algoritmo che enumera tutti gli elementi...E' interessante notare l'analogia con gli iteratori,...

posted @ Thursday, June 8, 2006 7:42 PM | Feedback (0)