T4 es el motor de generación de código "oficial" para C#/VB.NET. Pero F# doesn't support it (esto es de abril, pero no pude encontrar menciones más nuevas). Entonces, ¿cuál es una buena forma de generar código F #?Generando código F #
EDIT:
Quiero poner en práctica 2-3 finger trees en F #. Ya los he implementado en C#, por lo que esta debería ser una buena comparación. Los "dígitos" y nodos del árbol pueden ser representados como matrices, por lo
type 't FingerTree = Empty | Single of 't | Deep of 't array * (('t FingerTree) array) lazy * 't array
Sin embargo, el tamaño máximo de estas matrices es muy pequeña, así que sería bueno tener
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
para evitar la comprobación de límites, etc.
Pero luego escribir todas las funciones en Dígitos y Nodos a mano se vuelve más difícil, y es mejor generarlos. Y un enfoque similar al T4 parece perfecto para él ...
Voy a tirar [esto] (https://github.com/kerams/Templatus) por ahí. Es algo que he pirateado juntos recientemente. – nphx