OCaml

2010-09-01 8 views
5

में सशर्त संकलन मान लीजिए कि मेरे पास एक लंबा एल्गोरिदम है जिसे मैं वैकल्पिक रूप से वर्बोज़ करना चाहता हूं। अब तक मैंने कोड के चारों ओर कई if verbose then printf "whatever" जोड़े हैं लेकिन यह कोड को कई बेकार परीक्षण निष्पादित करने के लिए मजबूर करता है अगर मैं इसे वर्बोज़ मोड में नहीं रखना चाहता हूं।OCaml

क्या एक साधारण सशर्त संकलन प्राप्त करने का कोई तरीका है जो ध्वज सेट होने पर प्रिंटफ लाइनों को अनदेखा कर सकता है?

कुछ ऐसा जो, उदाहरण के लिए, मैं #IFDEF DEBUG printf .. #ENDIF

उत्तर

7

का उपयोग करके सी में क्या कर सकते हैं आप camlp4 में पाया जा सकता के लिए क्या देख रहे हैं। आप पूर्व-निर्धारित मैक्रो शामिल है तो आप (उन्हें यूएनडीईएफ के लिए और यू) डी का उपयोग कर कमांड लाइन पर झंडे को परिभाषित कर सकते हैं:

let f x = IFDEF FOO THEN x + 1 ELSE x - 1 END;; 
:

camlp4o pa_macro.cmo -DFOO file.ml 

कोड में यह इस तरह दिखता है

 संबंधित मुद्दे