Articles of f #

Vincoli di tipo membro statico F #

Sto cercando di definire una funzione, fattorizzazione, che utilizza i vincoli di tipo strutturale (richiede membri statici Zero, Uno, + e /) simile a Seq.sum in modo che possa essere utilizzato con int, long, bigint, ecc. I non riesco a trovare la syntax giusta, e non riesco a trovare molte risorse sull’argomento. Questo è quello […]

While o Tail Recursion in F #, cosa usare quando?

Ok, solo in F # e questo è il modo in cui ora lo capisco: Alcuni problemi sono ricorsivi in ​​natura (costruzione o lettura di una struttura per nominarne solo uno) e quindi si utilizza la ricorsione. In questi casi preferisci usare la ricorsione in coda per dare una pausa allo stack Alcuni linguaggi sono […]

Perché l’inferenza di tipo di F # è così volubile?

Il compilatore F # sembra eseguire l’inferenza di tipo in un modo (abbastanza) rigoroso da cima a fondo, da sinistra a destra. Ciò significa che devi fare cose come mettere tutte le definizioni prima del loro uso, l’ordine di compilazione dei file è significativo e tendi a dover riordinare le cose (tramite |> o cosa […]

Come creare una matrice con una sequenza di numeri interi in C #?

F # ha sequenze che permettono di creare sequenze: seq { 0 .. 10 } Crea una sequenza di numeri da 0 a 10. C’è qualcosa di simile in C #?

Inoltra il tubo in C #

Continuando le mie ricerche sull’esprimere idee F # in C #, volevo un operatore pipe forward. Per tutto ciò che è racchiuso in un object IEnumerable, lo abbiamo già, come è ansible .NextFunc () per il contenuto del tuo cuore. Ad esempio, se alla fine hai una riduzione simile a una piega, non puoi inserire […]

Combina memoization e coda-ricorsione

È ansible combinare memoization e coda-ricorsione in qualche modo? Sto imparando F # al momento e capisco entrambi i concetti ma non riesco a combinarli. Supponiamo di avere la seguente funzione di memoize (da Real-World Functional Programming ): let memoize f = let cache = new Dictionary() (fun x -> match cache.TryGetValue(x) with | true, […]

Metodi di estensione F # in C #

Se dovessi definire alcuni metodi di estensione, proprietà in un assembly scritto in F #, e quindi usare quell’assembly in C #, vedresti le estensioni definite in C #? Se è così, sarebbe così bello.

Sviluppo F # e test unitario?

Ho appena iniziato con F #, che è la mia prima lingua funzionale. Ho lavorato quasi esclusivamente con C # e mi diverto molto nel modo in cui F # mi porta a ripensare a come scrivo il codice. Un aspetto che trovo un po ‘disorientante è il cambiamento nel processo di scrittura del codice. […]

Caratteristiche nascoste di F #

Questo è il tentativo spudorato di una domanda simile a C # . Quindi quali sono le tue caratteristiche preferite di F # (o no) preferite? La maggior parte delle funzioni che ho usato fino ad ora non sono esattamente nascoste ma sono state piuttosto rinfrescanti. Come quanto sia banale sovraccaricare gli operatori rispetto a […]

Funzione di partizione della lista collegata e risultati invertiti

Ho scritto questa funzione F # per partizionare un elenco fino a un certo punto e non oltre – proprio come un incrocio tra takeWhile e partition . let partitionWhile cl = let rec aux accl accr = match accr with | [] -> (accl, []) | h::t -> if ch then aux (h::accl) t […]