2013-08-14 6 views
6

मुझे नहीं पता कि यह कार्यान्वयन पर निर्भर है या नहीं। शायद ज़रुरत यह मायने रखता है, मैं कौर्मन लिस्प 3.0अज्ञात फ़ंक्शन में "अप्रयुक्त चर जी ****" क्या है?

उपयोग कर रहा हूँ जब मैं कुछ इस तरह करते हैं:

;;; Warning: Unused variable G9063 in anonymous function 
;;; Warning: Unused variable G9062 in anonymous function 
हर बदलते जी की संख्या के साथ

:

(loop for v being the hash-values of *my-hash-table* 
    when (> v 1) sum v) 

मैं दो चेतावनी मिल पहर।

परिणाम हालांकि सही है। उनका क्या मतलब है? वे क्यों दिखाई देते हैं? मुझे लगता है कि loop सिंटैक्स दुरुपयोग का कोई प्रकार हो सकता है, जो इन चेतावनियों को जन्म देता है, लेकिन मैं इसे देखने में विफल रहता हूं।

उत्तर

6

कॉर्मन लिस्प को वर्षों से अपडेट नहीं किया गया है। G* अप्रयुक्त चर संभवतः एस loop के मैक्रो विस्तार में हैं।

(macroexpand '(loop ...)) 

यह चर देखने के लिए प्रयास करें।

+0

'(एलईटी ((#: जी 9 003 एनआईएल) (वी एनआईएल) (#: जी 9 000 वर्ड-COUNT) (#: जी 9 002 एनआईएल)) (साथ-हैश-टेबल-आईटेटर (#: जी 9 001: जी 9 000) (एलईटी ((#: जी 9 004 0)) (डेक्लेयर (प्रकार संख्या #: जी 9 004)) (ब्लॉक शून्य (लूप :: लूप-बॉडी शून्य (शून्य शून्य (जब (नहीं (बहु-मूल्य-एसईटीक्यू (#: जी 9 003 #: जी 9 002 वी) (#: जी 9 001)) (जाओ लूप :: एंड-लूप)) एनआईएल) ((आईएफ (> वी 1) (एसईटीक्यू #: जी 9 004 (+ #: जी 9 004 वी))) (शून्य शून्य (जब नहीं (नहीं (बहु-मूल्य-एसईटीक्यू (#: जी 9 003 #: जी 9 002 वी) (#: जी 9 001)) (जाओ लूप :: एंड-लूप)) शून्य ((रिटर्न-शून्य से #: जी 9 004))))))) 'पढ़ने के लिए थोड़ा मुश्किल है, लेकिन मुझे लगता है कि जी 9 002 और जी 9 003 जो मैं ढूंढ रहा हूं। यह अब समझ में आता है, धन्यवाद! – akalenuk

+1

@akalenuk आसान पढ़ने के लिए, आप कोशिश कर सकते हैं '(pprint (macroexpand' (लूप ...)) ''। मैंने आपके द्वारा चिपकाए गए कोड के साथ ऐसा किया, और मिला: http://paste.lisp.org/display/138466 (मुझे कुछ प्रतीकों को बदलना पड़ा, उदाहरण के लिए, 'लूप :: एंड-लूप'' लूप \ \: एंड-लूप 'चूंकि एसबीसीएल में' लूप 'पैकेज नहीं है, लेकिन यह मूल रूप से वही है।) –

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