T4는 C#/VB.NET의 "공식적인"코드 생성 엔진입니다. 그러나 F# doesn't support it (이것은 4 월부터이지만 더 새로운 언급을 찾을 수 없습니다). 그렇다면 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
경계 검사를 피하기 위해.
그러나 Digit와 Node의 모든 함수를 직접 작성하는 것은 더욱 어려워지고, 생성하는 것이 좋습니다. 그리고 T4와 같은 접근법은 그것을 완벽하게 보입니다 ...
. 최근에 내가 해킹 한 것입니다. – nphx