T4是C#/ VB.NET的“官方”代码生成引擎。但F# doesn't support it(这是从四月,但我找不到任何新的提及)。那么生成F#代码的好方法是什么?生成F#代码
编辑:
我想要实现在F#2-3 finger trees。我已经在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
为了避免边界检查等
但随后手写上的数字和节点的所有功能变得更加困难,这是更好地生成它们。而T4式的方法看起来非常完美...
我就扔[这](https://github.com/kerams/Templatus)在那里。这是我最近一起入侵的东西。 – nphx 2016-01-25 10:15:06