मैं रैकेट में एक वाक्यात्मक रूप है कि एक कीवर्ड तर्क, जिस तरह से कुछ कार्यों कर सकते हैं स्वीकार कर सकते हैं बनाना चाहते हैं।रैकेट मैक्रोज़ कीवर्ड तर्क ले सकते हैं?
एक सरल उदाहरण के लिए यह कम करने के बाद, मैं लेखन की कोशिश की:
(define-syntax sum-of-products
(syntax-rules (#:extra)
[(sum-of-products ([a b] ...))
(+ (* a b) ...)]
[(sum-of-products ([a b] ...) #:extra extra)
(+ extra (* a b) ...)]))
इस तरह की है कि निम्नलिखित तो काम करेगा:
(sum-of-products ([2 2] [3 3])) → 13
(sum-of-products ([2 2] [3 3]) #:extra 5) → 18
दुर्भाग्य से, रैकेट, इस "बुरा वाक्य रचना" कहता है इतनी स्पष्ट रूप से वह प्रयास सही नहीं था।
क्या यह किया जा सकता है?
विशेष रूप से, 'वाक्यविन्यास-पार्स' दस्तावेज़ में संपूर्ण तर्क [अनुभाग] (http://docs.racket-lang.org/syntax/Optional_Keyword_Arguments.html) कीवर्ड तर्कों के साथ मैक्रोज़ लिखने पर है। –
(उह, मैं उस लिंक को जोड़ना भूल गया ...) –