T4 является «официальным» механизмом генерации кода для C#/VB.NET. Но F# doesn't support it (это с апреля, но я не мог найти никаких новых упоминаний). Итак, что такое хороший способ генерировать код F #?Генерация кода F #
EDIT:
Я хочу осуществить 2-3 finger trees в F #. Я уже реализовал их на C#, поэтому это должно быть хорошее сравнение. «Цифры» и узлы дерева могут быть представлены в виде массивов, так
type 't FingerTree = Empty | Single of 't | Deep of 't array * (('t FingerTree) array) lazy * 't array
Однако максимальный размер этих массивов очень мала, так что было бы неплохо иметь
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
во избежание проверки границ и т. д.
Но тогда все функции на Digit и Node вручную становятся более сложными, и их лучше создавать. И подход, подобный T4, идеально подходит для него ...
Я просто выбросить [это] (https://github.com/kerams/Templatus) там. Это то, что я недавно взломал. – nphx