Generierung von F # -Code
T4 ist die "offizielle" Codegenerierungs-Engine für C # / VB.NET. AberF # unterstützt es nicht (Dies ist ab April, aber ich konnte keine neueren Erwähnungen finden). Was ist also ein guter Weg, um F # -Code zu generieren?
BEARBEITEN:
Ich möchte umsetzen2-3 Fingerbäume in F #. Ich habe sie bereits in C # implementiert, daher sollte dies ein guter Vergleich sein. Die "Ziffern" und Knoten des Baumes können also als Arrays dargestellt werden
type 't FingerTree = Empty | Single of 't | Deep of 't array * (('t FingerTree) array) lazy * 't array
Die maximale Größe dieser Arrays ist jedoch sehr klein, es wäre also schön, sie zu haben
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
Grenzen überprüfen, etc. zu vermeiden
Aber dann wird es schwieriger, alle Funktionen auf Digit und Node von Hand zu schreiben, und es ist besser, sie zu generieren. Und ein T4-ähnlicher Ansatz sieht perfekt dafür aus ...