2009-02-11 27 views
9

मैं Erlang में इस कोड को देखा:Erlang, सूची समझ वाक्य रचना

[X-$0 || X<-someFun()] 

कि लाइन मैं -$0 वाक्य रचना बहुत उपयोगी पाया है।

मैंने कोड पढ़ा और अनुमान लगाया कि इसका क्या अर्थ है, लेकिन मुझे पूरा यकीन नहीं है: क्या यह सभी संख्याओं को विभाजित करता है?

मैं उस वाक्यविन्यास के स्पष्टीकरण या मैन पेज को देखना चाहता हूं लेकिन मुझे यह नहीं मिल रहा है। क्या कोई मुझे सही पृष्ठ दिखा सकता है?

उत्तर

17

क्या है कि कोड क्या कर रहा है someFun() से उत्पादन (जो एक सूची प्रदान करने की जरूरत है) ले जा रहा है, और सूची में प्रत्येक तत्व के लिए यह चर X के तत्व का मान बताए जाता है और फिर चरित्र का ASCII मूल्य घटाकर उस मूल्य से 0। परिणामी सूची तब उस संपूर्ण अभिव्यक्ति का मूल्य है।

यह क्या कर रहा है, अभ्यास में (और मैंने यह कोड कई बार लिखा है), यह मानते हुए कि someFun/0 एक ऐसा फ़ंक्शन है जो इसमें केवल अंकों के साथ एक स्ट्रिंग देता है, और फिर उस स्ट्रिंग को एक सूची में परिवर्तित करता है अंक इसलिए, यदि someFun() "12345" लौटा, तो इस सूची की समझ का परिणाम [1, 2, 3, 4, 5] है।

यदि आप map फ़ंक्शन (जैसे मैपरेडस) की अवधारणा से परिचित हैं, तो यह अब तक बहुत परिचित लग रहा है।

यह wikibooks पेज Erlang सूची comprehensions के लिए एक अच्छा परिचय की तरह दिखता है:

http://en.wikibooks.org/wiki/Erlang_Programming/List_Comprehensions

जो आर्मस्ट्रांग की किताब "प्रोग्रामिंग Erlang", व्यावहारिक बुकशेल्फ से, (http://pragprog.com/titles/jaerlang/programming-erlang) भी सूची comprehensions वास्तव में अच्छी तरह से (के साथ शामिल किया गया अन्य सभी के साथ Erlang संबंधित)। बहुत बढ़िया किताब, अत्यधिक की सिफारिश की, आदि

1

सूची comprehensions के लिए सामान्य प्रलेखन पेज Erlang Reference Manual धारा 6.22 में और Programming Examples धारा 3.

इन दोनों में है main documentation page पर हैं (पर Erlang प्रोग्रामिंग फ़ोल्डर पर क्लिक करें बाएं हाथ मेनू बार)।

Erlang प्रलेखन फैब है - यह सिर्फ अपने लेआउट एक बालक shonky है है ...

+0

मृत लिंक, फिर इस अद्यतन करने के लिए चाहते हो सकता है। – EvilTeach

+0

@EvilTeach * Shonky लिंक। – providence

+0

अनुरोध के रूप में तय लिंक। –

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