T4 è il motore di generazione del codice "ufficiale" per C#/VB.NET. Ma F# doesn't support it (questo è da aprile, ma non ho trovato nessuna menzione più recente). Allora, qual è un buon modo per generare il codice F #?Generazione del codice F #
EDIT:
Voglio realizzare 2-3 finger trees in F #. Li ho già implementati in C#, quindi questo dovrebbe essere un bel confronto. Le "cifre" e nodi dell'albero possono essere rappresentati come array, così
type 't FingerTree = Empty | Single of 't | Deep of 't array * (('t FingerTree) array) lazy * 't array
Tuttavia, la dimensione massima di queste matrici è molto piccola, quindi sarebbe bello avere
type 't Digit = Digit1 of 't | Digit2 of 't*'t | Digit3 of 't*'t*'t | Digit4 of 't*'t*'t*'t
type 't Node = Node2 of 't FingerTree * 't FingerTree | Node3 of 't FingerTree * 't FingerTree * 't FingerTree
type 't FingerTree = Empty | Single of 't | Deep of 't Digit * ('t Node) lazy * 't Digit
per evitare il controllo dei limiti, ecc.
Tuttavia, scrivere tutte le funzioni su Digit e Node manualmente diventa più difficile ed è meglio generarle. E un approccio T4 sembra perfetto per questo ...
mi limiterò a buttare [questo] (https://github.com/kerams/Templatus) là fuori. È qualcosa che ho hackerato insieme di recente. – nphx