T4 là công cụ tạo mã "chính thức" cho C#/VB.NET. Nhưng F# doesn't support it (đây là từ tháng 4, nhưng tôi không thể tìm thấy bất kỳ đề cập mới hơn nào). Vậy cách tốt để tạo mã F # là gì?Tạo mã F #
EDIT:
Tôi muốn triển khai 2-3 finger trees trong F #. Tôi đã thực hiện chúng trong C#, vì vậy đây nên là một so sánh tốt đẹp. Các "chữ số" và các nút của cây có thể được biểu diễn dưới dạng mảng, vì vậy
type 't FingerTree = Empty | Single of 't | Deep of 't array * (('t FingerTree) array) lazy * 't array
Tuy nhiên, kích thước tối đa của các mảng là rất nhỏ, vì vậy nó sẽ được tốt đẹp để có
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
để tránh kiểm tra giới hạn, vv
Nhưng sau đó viết tất cả các chức năng trên chữ số và nút bằng tay trở nên khó khăn hơn và tốt hơn là tạo chúng. Và một cách tiếp cận giống như T4 trông hoàn hảo cho nó ...
tôi sẽ chỉ ném [này] (https://github.com/kerams/Templatus) ra khỏi đó. Đó là điều tôi đã tấn công gần đây. – nphx