racket - scheme how do you sum numbers in a list when you have structures and list of lists -
;; एटीओएम एक है:; -- प्रतीक ;; - स्ट्रिंग ;; - संख्या ;; एक एसईएक्सपी (एस-एक्सप्रेशन) इनमें से एक है:; - खाली ;; - (विपक्ष ATOM SEXP) ;; - (असुरक्षित SEXP SEXP) तो मैं SEXP में सभी नंबरों को योग करने की कोशिश कर रहा हूँ! यहां मेरा कोड है,
;; योग-संख्या: लिंग - - & gt; संख्या (सम-संख्या लिंग) (कोंड [(रिक्त? लिंग) 0] [(एटॉम? (प्रथम सेक्स)) (+ (परमाणु-संख्या-संख्याएं (प्रथम सेक्स)) (योग-संख्याएं (बाकी सेक्सपी)) )] [(एसईएक्सपी? (पहले सेक्सप)) (+ (योग-संख्याएं (प्रथम सेक्स)) (राशि-संख्याएं (आराम से सेक्स)))))) ;; परमाणु-राशि-संख्या: एटम - & gt; संख्या (एटम-सम-नंबर ए) (कोंड [(प्रतीक? ए) 0] [(संख्या? ए) (+ (एटोम-नंबर ए) (एटम-सम-नंबर ए))] [(स्ट्रिंग? ए ) 0])) हालांकि, एक त्रुटि cond कहते हैं: सभी प्रश्न परिणाम झूठे थे। मैं सोच रहा हूं कि वहां क्या हुआ।
आप सूची में हेरफेर प्रक्रियाओं के साथ संरचना अभिगम प्रक्रियाओं को मिला रहे हैं, काम नहीं करेगा - आपको सुसंगत होना है, अगर आपको स्ट्रैक्ट्स का इस्तेमाल करना है तो आपको संरचना की अपनी प्रक्रियाओं का उपयोग करना होगा।
इसके अलावा, आपका मेरा सुझाव है कि आप कुछ और प्रयास करें, जहां परमाणु वास्तव में परमाणु हैं, स्ट्रैक्ट नहीं हैं। अन्यथा आपको आइए हम इसे जांचते हैं, और ध्यान दें कि परमाणु कैसे सादे होते हैं, परमाणु, ATOM संरचना गलत है, क्योंकि यह है कह रही है: एक परमाणु एक प्रतीक, एक स्ट्रिंग और एक नंबर (तीन चीजें, उनमें से सिर्फ एक ही नहीं!) से बना है। बेशक, प्रतीक? , संख्या? और स्ट्रिंग? predicates उस संरचना के लिए काम नहीं करेगा, यही कारण है कि cond शिकायत कर रहा है कि सभी स्थितियां गलत हैं। ATOM संरचना को फिर से विचार करना होगा, इसके मौजूदा रूप में आप जिस तरीके से कल्पना करेंगे, उसमें काम नहीं करेंगे। उदाहरण के लिए, यह काम करेगा:
(परिभाषित करें (संख्या संख्या लिंग) (cond [(खाली? लिंग) 0] [(एसईएक्सपी? (एसएक्सपी-एटॉम सेक्सप)) (+ (योग (संख्या-संख्या (एसईएक्सपी-एसईएक्सपी सेक्सप)) (अन्य संख्या (एसएक्सपी-एसईएक्सपी सेक्सपी)) )]) (परिभाषित करें (एटम-सम-नंबर ए) (कंड [(प्रतीक? ए) 0] [(संख्या? ए) ए] [(स्ट्रिंग? ए) 0])) ATOM struct:
(सम-संख्याएं (मेक-एसईएक्सपी 'एक्स (मेक-एसईएक्सपी 7 (मेक-एसईएक्सपी "ए" '()))))) = & gt; 7
Comments
Post a Comment