2012-06-02 1 views

उत्तर

43

दलील

if में से एक सशस्त्र संस्करण रैकेट से निकाल दिया गया कीड़े को रोकने के लिए।

कार्यात्मक कोड में हमेशा if के दो-सशस्त्र संस्करण का उपयोग करता है।

(if test expr-on-true expr-on-false) 

दूसरे हाथ expr-on-false एक वाक्य रचना त्रुटि के लिए नेतृत्व नहीं करेंगे भूलकर, लेकिन एक रनटाइम त्रुटि के लिए (अभिव्यक्ति #<void> वापसी होगी)।

कार्यात्मक कोड में इन अक्सर होने वाली बग को रोकने के लिए, if के एक सशस्त्र संस्करण के लिए फॉर्म when प्रस्तुत करने का निर्णय लिया गया था।

(when test expr-on-true) 

आकस्मिक कीड़े को रोकने इसके अलावा, नए रूप में स्पष्ट रूप से कोड का एक पाठक के लिए संकेत दिया, कि कोड साइड इफेक्ट पर निर्भर करता है।

मानक योजना से Porting कोड

रैकेट आप रैकेट में योजना कोड चलाने की कोशिश करते हैं और त्रुटि संदेश दिखाई

if: bad syntax (must have an "else" expression) 

आप when या unless को if अभिव्यक्ति को फिर से लिखने चाहिए।

आप को फिर से लिखने:

(if test expr1) to (when test expr1) 

और

(if (not test) expr1) to (unless test expr1). 
संबंधित मुद्दे