View Single Post
Old 24-10-2017, 10:57   #29
fano
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2095
Quote:
Originariamente inviato da Bellaz89 Guarda i messaggi
No .. o almeno, in Haskell puoi definire i concetti che ti pare nel programma. Quindi se ti serve null te lo crei (solitamente e' usato il tipo Maybe.. ma ovviamente e' opzionale)
Direi che se si usa un linguaggio funzionale (o se si dovesse ridisegnare un nuovo linguaggio di qualsiasi tipo) e uno pensa di re-introdurre null sta facendo qualcosa di sbagliato.

In F# "puro" non esiste null tutte le API sono riscritte per usare un concetto analogo a Maybe purtroppo null può riapparire come "poison" se si chiamano librerie scritte in C#.

Microsoft sta cercando per la versione 8.0 di C# di introdurre il concetto che gli oggetti sono sempre non null un po' l'inverso del nullable che fecero per i tipi primitivi in versioni precedenti... credo sia davvero difficile retrofittare un linguaggio pensato per avere null ovunque a non averli più.

Il null è un errore da un 1'000'000 di €

Fibonacci in F#:

Codice:
// Recursive function that implements the looping
// (it takes previous two elements, a and b)
let rec fibsRec a b =
  if a + b < 400 then
    // The current element
    let current = a + b
    // Calculate all remaining elements recursively 
    // using 'b' as 'a' and 'current' as 'b' (in the next iteration)
    let rest = fibsRec b current  
    // Return the remaining elements with 'current' appended to the 
    // front of the resulting list (this constructs new list, 
    // so there is no mutation here!)
    current :: rest
  else 
    [] // generated all elements - return empty list once we're done

// generate list with 1, 2 and all other larger fibonaccis
let fibs = 1::2::(fibsRec 1 2)
__________________
Cosmos C# Open Source Managed Operating System
Cosmos Thread Ufficiale
Cosmos Official Site Vuoi collaborare allo sviluppo? Unisciti alla chat!

Ultima modifica di fano : 24-10-2017 alle 11:00.
fano è offline   Rispondi citando il messaggio o parte di esso