2011-10-08 8 views
6

मैं इस उदाहरणSICP वीडियो व्याख्यान 2

(define (+ x y) 
    (if (= x 0) 
     y 
     (+ (-1+ x) (1+ y)))) 

क्या साथ -1+ समस्या है और 1 +, जब मैं यह मूल्यांकन मैं इस परिणाम

  • DrScheme पाने के साथ एक समस्या है: - 1 +: इस समारोह परिभाषित किया गया है नहीं
  • रैकेट: अपरिभाषित पहचानकर्ता के संदर्भ: -1+

लेकिन मैं इस बजाय लिख सकते हैं और यह wor ks

(define (add x y) 
    (if (= x 0) 
     y 
     (+ (- x 1) (+ y 1)))) 

उत्तर

12

रैकेट के लिए:

  • उपयोग add1 बजाय 1+
  • उपयोग sub1 बजाय -1+ या 1- की

मुसीबत है, उन नामों में से कोई भी मानक हैं, इसलिए आप सभी योजना कार्यान्वयन में विश्वसनीय रूप से उनका उपयोग नहीं कर सकते हैं। :-)

+0

उप 1 और add1 बहुत अच्छे हैं, मुझे लगता है कि सुस्मान केवल इस उदाहरण को समझाने के लिए -1+ का उपयोग करते हैं। धन्यवाद क्रिस –

2

आप DrRacket को एसआईसीपी समर्थन जोड़कर इसे ठीक कर सकते हैं।

http://www.neilvandyke.org/racket-sicp/

एनीमोर मुसीबत मुझे पता है।

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