टी -4 "आधिकारिक" के लिए सी #/VB.NET कोड पीढ़ी इंजन है। लेकिन F# doesn't support it (यह अप्रैल से है, लेकिन मुझे कोई नया उल्लेख नहीं मिला)। तो एफ # कोड उत्पन्न करने का एक अच्छा तरीका क्या है?उत्पन्न एफ # कोड
संपादित करें:
मैं एफ # में 2-3 finger trees लागू करना चाहते हैं। मैंने पहले ही उन्हें सी # में लागू किया है, इसलिए यह एक अच्छी तुलना होना चाहिए। "अंक" और पेड़ की नोड्स सरणियों के रूप में प्रतिनिधित्व किया जा सकता है, तो
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
सीमा की जाँच, आदि से बचने के लिए
लेकिन फिर हाथ से अंक और नोड पर सभी कार्यों लेखन अधिक मुश्किल हो जाता है, और यह उन्हें उत्पन्न करने के लिए बेहतर है। और एक टी -4 की तरह दृष्टिकोण यह के लिए एकदम सही लग रहा है ...
मैं सिर्फ [इस] (https://github.com/kerams/Templatus) फेंक देंगे वहाँ बाहर। यह हाल ही में मैंने कुछ हैक किया है। – nphx