जिज्ञासा: प्रग्न का क्या मतलब है?


21

Emacs प्रलेखन के अनुसार:

progn is a special form in `C source code'.

(progn BODY...)

Eval BODY forms sequentially and return value of last one.
  1. progn(या इसके मूल) के लिए क्या खड़ा है?
  2. उपयोग: यह करने के लिए बराबर है Clojureकी ->मैक्रो?

जवाबों:


32
  1. prognसीएल जैसी लिस्प बोलियों से उधार लिया गया एक विशेष रूप है। उनके कार्यान्वयन में यह कई progएस से बना है , अभिव्यक्ति का मूल्यांकन किया जाता है और एक संख्या जो निर्दिष्ट करती है कि कौन सा अभिव्यक्ति मूल्य वापस आ गया है। prog1उदाहरण के लिए, सभी अभिव्यक्तियों का मूल्यांकन करता है और पहले का मान लौटाता है, prog2सभी भावों का मूल्यांकन करता है और दूसरे के मूल्य को लौटाता है, prognसभी भावों का मूल्यांकन करता है और n'th, या बल्कि, अंतिम अभिव्यक्ति के मूल्य को लौटाता है।

  2. prognEmacs में लिस्प क्लोजुर के बराबर doहै जिसका उपयोग कई भावों को एक एकल में बंडल करने के लिए किया जाता है। ifउदाहरण के लिए, आपको क्लीजोर के सशर्त के लिए इसका उपयोग करने की आवश्यकता होगी ।


1
अच्छा जवाब, मैंने इसे उकेरा। हालांकि, औपचारिकता के लिए: आपको वास्तव में सशर्त के लिए इसकी आवश्यकता नहीं है , condइसका निहितार्थ है progn
mbork

2
उह, मैं Clojure की बात कर रहा था जो निहित नहीं है prognअपने में if
वामासा

2
Emacs के पास prog1और prog2अंतर्निहित विशेष रूप भी होते हैं।
cjm

1
मैंने बहुत से उपयोगकर्ताओं के कॉन्फ़िगरेशन में इसका उपयोग देखा है। क्या इस तरह से "एक्सक्लूसिव" कई अभिव्यक्तियों से एक प्रदर्शन को बढ़ावा मिलता है, जैसा कि बाहर एक के बाद एक उनका मूल्यांकन करने के लिए होता है progn?
इथन

यकीन नहीं होता कि आपको क्या लगता है। prognC- जैसी भाषा में एक लटके हुए ब्लॉक के बराबर है ...
वामासा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.