सामग्री पर जाएँ
Varlig गाइड
Varlig का मुख्य पृष्ठ

सूचियाँ और सांख्यिकी

सूची कई मानों को एक नाम में रखती है, जैसे सप्ताह भर की पैदल कदमों की गिनती, परीक्षा के अंक या महीने की रसीदें। सूची से कुल, औसत और मानों का फैलाव निकाल सकते हैं तथा ज़रूरी मान चुन सकते हैं।

यह पेज सूची लिखना और इंडेक्स से मान लेना, सारांश आँकड़े, ऊपर की पंक्तियाँ जोड़ना, टैग लगाकर अलग-अलग जगह की पंक्तियों का कुल निकालना, क्रम लगाना, हिस्सा लेना, map और filter से सूची बदलना तथा पूरी सूची पर अंकगणित समझाता है। आँकड़ों के कॉलम का सार निकालने में इसका उपयोग करें। पंक्तियों की सूची आव्यूह भी बन सकती है; उसके लिए अलग पेज है।

एक सूची लिखना

मानों को वर्ग कोष्ठक में रखें, अल्पविराम से अलग करेंः

calc
scores = [72, 85, 91, 64, 88] परिणाम [72, 85, 91, 64, 88]
scores[0] परिणाम 72
scores[4] परिणाम 88
length(scores) परिणाम 5

सूची में मान की स्थिति उसका इंडेक्स है, जिसे सूची के बाद वर्ग कोष्ठकों में लिखते हैं। इंडेक्स शून्य से शुरू होते हैं, इसलिए scores[0] पहला और scores[4] पाँचवाँ अंक है। आखिरी तत्व का इंडेक्स हमेशा length(scores) - 1 है। ऋणात्मक, भिन्नात्मक या बहुत बड़ा इंडेक्स त्रुटि देता है; वह पीछे से गिनने या सूची में घूमकर लौटने का तरीका नहीं है।

तत्व गणना, इकाइयों के साथ मात्रा, या अन्य सूचियां हो सकती हैं:

calc
[2 * 45, 60 + 15] परिणाम [90, 75]
[1.5 kg, 750 g] परिणाम [1.5 kg, 750 g]
[[1, 2], [3, 4]][1][0] परिणाम 3

नेस्टेड सूचियों के साथ, पहला सूचकांक आंतरिक सूची चुनता है और दूसरा इसमें से एक मान चुनता है: [1] [3, 4] का चयन करता है, फिर [0] 3 का चयन करता है।

सूची के अंदर हज़ारों के विभाजक काम करते हैं, इसलिए आँकड़े जैसे लिखे हों वैसे पेस्ट कर सकते हैं। अलग-अलग मानों के बीच अल्पविराम के बाद स्पेस रखें। जिस अल्पविराम के तुरंत बाद तीन अंक हों, वह संख्या का हिस्सा रहता है:

calc
salaries = [£32,000, £41,500, £38,250] परिणाम [£32,000.00, £41,500.00, £38,250.00]
average(salaries) परिणाम £37,250.00

देखने के लिए कुछ चीजेंः

  • बिना रिक्त स्थान के, प्रत्येक कॉमा अलग‑अलग करता है, इसलिए [8200,10400] में दो मान होते हैं। [100,200,300] जैसी सूची एक संख्या या तीन हो सकती है, इसलिए Varlig एक त्रुटि दिखाता है जो दोनों को स्पष्ट रूप से बताती है।
  • उत्तर हजारों विभाजक और प्रत्येक अल्पविराम के बाद एक स्थान दिखाते हैं, इसलिए [8,200, 10,400] दो मानों की एक सूची है।
  • एक सूची में अधिकतम 1,024 मान होते हैं।

सारांश आंकड़े

calc
scores = [72, 85, 91, 64, 88]
sum(scores) परिणाम 400
average(scores) परिणाम 80
median(scores) परिणाम 85
min(scores) परिणाम 64
max(scores) परिणाम 91
count(scores) परिणाम 5

mean और avg, average के दूसरे नाम हैं; total, sum का; stdev, stddev का; और count, length का। इसलिए स्प्रेडशीट की आदतें यहाँ भी काम आती हैं। product सभी मानों का गुणनफल निकालता है। सबसे अधिक बार आने वाला मान, प्रतिशतक या चतुर्थक निकालने के लिए नीचे देखें।

एक नामित सूची के साथ, आप शब्दों में आंकड़े भी लिख सकते हैंः

calc
scores = [72, 85, 91, 64, 88]
average of scores परिणाम 80
total of scores परिणाम 400

sum of, mean of, median of, min of, max of और count of समान रूप से काम करते हैं। of के बाद, एक नाम या स्वयं मान लिखें, कॉमा द्वारा अलग किए गए, गोल कोष्ठक के साथ या बिना। वर्ग कोष्ठक में मानों के लिए, फ़ंक्शन रूप का उपयोग करें, जैसे average([72, 85, 91]).

अधिकांश आंकड़े, जिनमें sum, product, average, median, min, max, count और stddev शामिल हैं, सूची के बजाय अलग-अलग मान भी स्वीकार करते हैं:

calc
max(72, 85, 91) परिणाम 91
sum(1, 2, 3, 4) परिणाम 10
average of 70, 85, 91 परिणाम 82
mean of (1,2,3) परिणाम 2
average(1,200, 1,800) परिणाम 1,500

ऊपर की पंक्तियों को जोड़ना

एक पंक्ति जो केवल sum, total, subtotal, grand total, average, max या min कहती है, ऊपर दिए गए उत्तरों के लिए वह संख्या निकालती है। यह अपना ही खंड कवर करती है, जो पिछले कुल से शुरू होता है, एक --- विभाजक या एक # शीर्षक, इसलिए नोट का प्रत्येक भाग टाइप करते समय अपनी संख्या प्राप्त करता है। यह एक पंक्ति के संदर्भ मेनू में Subtotal विकल्प की तरह काम करता है:

calc
# Groceries
bread = £1.20
milk = £1.45
eggs = £2.30
total परिणाम £4.95
# Household
bin bags = £3.50
washing up liquid = £1.80
total परिणाम £5.30

कुल निकालने वाले शब्द के साथ लेबल, अपना नाम, इकाई रूपांतरण या टिप्पणी जोड़ सकते हैं, ताकि पंक्ति बाकी नोट की तरह सहज पढ़ी जाए:

calc
tickets = £64
train = £41.20
Estimated total: total परिणाम £105.20

est = total परिणाम को नाम में सहेजता है और total // still to book उसके पास टिप्पणी जोड़ता है। total in kg दिखाने से पहले रूपांतरण करता है; किसी अनुभाग में ग्राम और किलोग्राम मिले हों तो यह उपयोगी है। ऑपरेटर के पास सांख्यिकीय शब्द वही मान देता है जो अकेली पंक्ति में देता, इसलिए £5 + subtotal संचयी योग में £5 जोड़ता है।

calc
# Parcels
12 kg परिणाम 12 kg
4 kg परिणाम 4 kg
850 g परिणाम 850 g
total in kg परिणाम 16.85 kg
max परिणाम 12 kg

यदि आपने sum या total नाम का मान दिया है, तो लाइन आपके मान को प्रदर्शित करती है। जब काम करने के लिए ऊपर कुछ नहीं होता है, तो लाइन Unsupported: no amounts above to add up कहती है, बजाय इसके कि एक खाली या शून्य दिखाए, जो आमतौर पर एक शीर्षक को दर्शाता है जिसे आप भूल गए थे।

हर रकम एक ही बार गिनी जाती है। अनुभाग में आगे की कोई पंक्ति नाम वाली रकम से गणना करे, तो कुल में दोनों के बजाय वह नई पंक्ति गिनी जाती है। इसलिए प्रति इकाई कीमत और मात्रा वाली खरीदारी सूची का कुल वास्तविक भुगतान बताता है:

calc
shirt = £18.50
shorts = £9
9 * shirt परिणाम £166.50
10 * shorts परिणाम £90.00
fee = £40
vat = fee * 20% परिणाम £8.00
total परिणाम £304.50

shirt और shorts उन दो लाइनों के भीतर गिना जाता है जिनका उपयोग किया जाता है, जबकि fee कुल में ही रहता है क्योंकि vat केवल उसका एक हिस्सा लेता है।

नामों की पूरी शृंखला में यही नियम चलता है। किसी रकम के हिस्से बनाकर फिर उन्हें जोड़ने पर, हिस्सों को जोड़ने वाली पंक्ति भी गिनी जाती है और वह मूल रकम भी जिसके ये हिस्से थे:

calc
pot = £900
1st = 50% of pot परिणाम £450.00
2nd = 30% of pot परिणाम £270.00
3rd = 20% of pot परिणाम £180.00
1st + 2nd + 3rd परिणाम £900.00
total परिणाम £900.00

केवल एक ही प्रकार के मान जोड़े जाते हैं। ऊपर रकम या इकाई वाली मात्रा हो तो प्रतिशत, दरें और साधारण गिनतियाँ छोड़ दी जाती हैं; त्रुटि वाली पंक्ति भी नहीं जुड़ती। कॉलम में पेस्ट की गई बिना मुद्रा संकेत वाली संख्याएँ भी जोड़ी जाती हैं अगर वे रकम की तरह दो दशमलव स्थानों तक लिखी हों। विनिमय दर या गुणक की तरह अधिक दशमलव अंकों वाली संख्या छोड़ दी जाती है। कुल का संकेत छोड़ी गई हर पंक्ति बताता है, जैसे “Leaves out line 3 (people = 2)” या “Leaves out line 2 (an error)”, ताकि शामिल मान साफ़ दिखें।

नामों से गणना करने वाली पंक्ति के नीचे और कुल के ठीक ऊपर बिना नाम की दो या अधिक रकम हों, तो केवल उनकी सूची का योग निकलता है। इससे नोट के ऊपर निकला बजट नीचे की सूची में दोबारा नहीं गिना जाता:

calc
budget = £18,000
remaining = budget - £6,388.25 परिणाम £11,611.75
- skip hire £250 परिणाम £250.00
- deep clean £120 परिणाम £120.00
subtotal परिणाम £370.00

अलग-अलग जगह की पंक्तियों का कुल निकालने के लिए उन्हें टैग दें।

सबसे अधिक बार आने वाले मान

mode सबसे अधिक बार आने वाला अकेला मान देता है। सबसे अधिक आवृत्ति पर बराबर आने वाले सभी मानों की सूची के लिए modes इस्तेमाल करें:

calc
marks = [3, 4, 4, 5, 5, 5, 6]
mode(marks) परिणाम 5
modes([1, 1, 2, 2, 3]) परिणाम [1, 2]

mode तभी उत्तर देता है जब एक मान बाकी सभी से अधिक बार आए। कुछ भी न दोहराया जाए या कई मानों की अधिकतम आवृत्ति बराबर हो, तो किसी एक को चुनने के बजाय यही स्थिति बताता है:

calc
mode([1, 2, 3]) परिणाम Unsupported: No value repeats, so this list has no mode; use median or average instead

प्रतिशतक और चतुर्थक

percentile(list, rank) में rank 0 से 100 तक होता है। यह दो निकटतम अवलोकनों के बीच अंतर्वेशन करके उस प्रतिशतक का मान देता है। quartile(list, k) यही काम चौथाई हिस्सों पर करता है; k 0 से 4 तक होता है। इसलिए quartile(list, 1) और percentile(list, 25) समान हैं:

calc
scores = [72, 85, 91, 64, 88]
percentile(scores, 50) परिणाम 85
percentile(scores, 25) परिणाम 72
quartile(scores, 3) परिणाम 88
quartile(scores, 4) परिणाम 91
percentile([1, 2, 3, 4], 25) परिणाम 1.75
quartile([1, 2, 3, 4], 3) परिणाम 3.25

50वां प्रतिशतक माध्यिका है, और 0वां और 100वां — quartile(list, 0) और quartile(list, 4) — सबसे छोटे और सबसे बड़े मान हैं, जो min और max के समान हैं। इसकी सीमा से बाहर का रैंक एक त्रुटि है, न कि वह निकटतम मान जो फिट हो सके:

calc
percentile([1, 2, 3, 4], 101) परिणाम Unsupported: A percentile is between 0 and 100
quartile([1, 2, 3, 4], 5) परिणाम Unsupported: A quartile is 0, 1, 2, 3 or 4

प्रसार: विचरण और मानक विचलन

calc
scores = [72, 85, 91, 64, 88]
variance(scores) परिणाम 132.5
stddev(scores) to 1 dp परिणाम 11.5

दोनों नमूने के आँकड़े हैं: वे मानों की संख्या से एक कम (n - 1) से भाग देते हैं। बड़े समुच्चय से लिए गए नमूने के लिए सामान्यतः यही रूप इस्तेमाल होता है। कम से कम दो मान चाहिए। किसी भी आँकड़े के बाद to 1 dp लगाकर उसे राउंड कर सकते हैं।

सूची नमूना नहीं बल्कि पूरा समुच्चय हो तो समष्टि वाले रूप इस्तेमाल करें। वे n से भाग देते हैं और उन्हें केवल एक मान भी पर्याप्त है:

calc
# Train delays in minutes
delays = [2, 4, 4, 4, 5, 5, 7, 9]
sample_variance(delays) परिणाम 4.5714285714
population_variance(delays) परिणाम 4
sample_stddev(delays) परिणाम 2.1380899353
population_stddev(delays) परिणाम 2
कॉल अंतरों के वर्गों के योग को किससे भाग दिया जाता है आवश्यक मान
variance, sample_variance n - 1 दो मान
population_variance n एक मान
stddev, stdev, sample_stddev n - 1 दो मान
population_stddev n एक मान

sample_variance और sample_stddev variance और stddev के लिए लंबे नाम हैं, इसलिए आप यह बता सकते हैं कि आपका क्या मतलब है। छोटे नाम हमेशा नमूना रूप रहे हैं और अभी भी हैं।

इकाइयों के साथ सूची

sum, average, median, mode, modes, percentile, quartile, min, max, stddev और population_stddev इकाइयाँ बनाए रखते हैं और संगत इकाइयों के बीच रूपांतरण करते हैं। सभी मान पहली इकाई में पढ़े जाते हैं और उत्तर भी उसी में आता है:

calc
commutes = [24 min, 31 min, 27 min, 22 min]
sum(commutes) परिणाम 1 hour 44 min
average(commutes) परिणाम 26 min
median(commutes) परिणाम 25.5 min
percentile(commutes, 25) परिणाम 23.5 min
population_stddev(commutes) परिणाम 3.3911649916 min
sum([1 kg, 500 g]) परिणाम 1.5 kg
modes([1 kg, 500 g, 1 kg, 500 g]) परिणाम [0.5 kg, 1 kg]

विचरण वाले फ़ंक्शन अपवाद हैं: वे अवलोकनों का वर्ग करते हैं और इस प्रक्रिया में इकाइयाँ बनाए नहीं रखते। इसलिए केवल बिना इकाई की संख्याएँ स्वीकार करते हैं।

calc
sample_variance([1 kg, 2 kg]) परिणाम Unsupported: A variance squares its observations, so it takes plain numbers; use stddev for amounts with a unit

sort भी केवल सादे संख्याओं पर काम करता है। असंगत इकाइयों वाले मानों पर एक आँकड़ा, जैसे कि sum([1 kg, 3 m]), चुपचाप मानों को छोड़ने के बजाय एक त्रुटि देता है।

इन सभी के पीछे सटीकता के नियम क्या इंजन गारंटी देता है में हैं।

ख़ाली सूचियां

एक ख़ाली सूची पर कॉल करें परिणाम
sum([]) 0
product([]) 1
count([]), length([]) 0
average([]), median([]), min([]), max([]) त्रुटि
variance([]), stddev([]) त्रुटि

एक खाली सूची अक्सर एक filter के परिणाम के रूप में दिखाई देती है जिसने कुछ भी मैच नहीं किया, इसलिए फ़िल्टर की गई सूची का average विफल हो सकता है भले ही मूल सूची में मान हों।

टैग

एक टैग एक # होता है जिसमें सीधे उस पर एक शब्द जुड़ा होता है, जैसे #food। उस लाइन को लेबल करने के लिए किसी भी पंक्ति में एक लिखें। टैग योग में कोई हिस्सा नहीं लेता, इसलिए लाइन अभी भी अपना उत्तर दिखाती है, और यह उस लाइन को हर दूसरी लाइन के साथ जोड़ता है जिसमें वही टैग होता है। total of #food फिर उन लाइनों को जोड़ता है:

calc
£12.50 lunch #food परिणाम £12.50
£8 coffee #food परिणाम £8.00
flights = £420 #trip परिणाम £420.00
total of #food परिणाम £20.50

टैग का लाभ यह है कि पंक्तियाँ साथ-साथ होना ज़रूरी नहीं, जबकि उपकुल के लिए होता है। सप्ताह का खर्च, यात्रा और खरीदारी सूची एक ही ब्लॉक में रखकर नीचे उनके अलग-अलग कुल निकाल सकते हैं। टैग पर पॉइंटर रखकर उसका अब तक का कुल देखें।

प्रत्येक आँकड़ा एक टैग पर काम करता है। of वैकल्पिक है, टैग शब्द से पहले या बाद में आ सकता है, और उत्तर एक लेबल या अपना खुद का नाम लेता है, जैसा कि कोई अन्य पंक्ति करता है:

calc
#food £12.50
#food £8
£420 #trip
total of #food परिणाम £20.50
average of #food परिणाम £10.25
count of #food परिणाम 2
min of #food परिणाम £8.00
max of #food परिणाम £12.50
#food total परिणाम £20.50
Food this week: sum of #food परिणाम £20.50
eaten = avg #food परिणाम £10.25

sum, total, average, avg, mean, count, min और max सभी इस तरह से पढ़ते हैं।

टैग से निकला आँकड़ा किसी रकम की जगह इस्तेमाल होता है, इसलिए उससे आगे गणना कर सकते हैं। जैसे संचयी योग से अग्रिम भुगतान घटाना, कुल को किसी अनुपात से बढ़ाना या दो टैग के कुलों की तुलना करना:

calc
£20 shop #food परिणाम £20.00
£30 meal out #food परिणाम £30.00
total of #food - £10 परिणाम £40.00
2 * total of #food परिणाम £100.00
Cooking kit: total of #food परिणाम £50.00

एक पंक्ति जितनी चाहें उतने टैग ले जा सकती है, और प्रत्येक इसे गिनता है। एक वाक्यांश में दो टैग का नाम दें और आपको वे पंक्तियाँ मिलती हैं जो दोनों को ले जाती हैं:

calc
£50 dinner #trip #food परिणाम £50.00
£30 taxi #trip परिणाम £30.00
£9 sandwich #food परिणाम £9.00
total of #trip परिणाम £80.00
total of #food परिणाम £59.00
total of #trip #food परिणाम £50.00

टैग के कुल में क्या शामिल होता है

एक टैग वाक्यांश बिल्कुल उसी पंक्तियों को देखता है जो एक साधारण total करता है, और वही नियम का पालन करता है:

  • यह अपने स्वयं के खंड को कवर करता है, पिछले कुल पर वापस, एक --- विभाजक या एक # शीर्षक।
  • केवल एक ही प्रकार के मान जुड़ते हैं। प्रतिशत, दरें, साधारण गिनतियाँ और त्रुटि वाली पंक्तियाँ छूट जाती हैं। संकेत में उनका नाम आता है, जैसे “Leaves out line 2 (people = 2)”।
  • प्रत्येक राशि को एक बार गिना जाता है, इसलिए एक टैग की गई क़ीमत जिसे बाद में टैग की गई पंक्ति गुणा करती है, दोनों के बजाय उस पंक्ति में गिना जाता है।

तो एक सप्ताह के #food को अगले से अलग रखने के लिए एक शीर्षक ही हैः

calc
# Week 1
£20 lunch #food परिणाम £20.00
total of #food परिणाम £20.00
# Week 2
£30 lunch #food परिणाम £30.00
total of #food परिणाम £30.00

जोड़ने लायक कुछ न मिले तो पंक्ति खाली या शून्य दिखाने के बजाय यही बताती है। अक्सर इसका कारण टैग में टाइप की गलती या बीच का कोई भूला हुआ शीर्षक होता है:

calc
£12.50 lunch #food परिणाम £12.50
total of #drinks परिणाम Unsupported: no lines tagged #drinks above
ring the plumber #jobs
total of #jobs परिणाम Unsupported: no amounts tagged #jobs above

टैग नाम लिखना

टैग के नाम में अक्षर, अंक, _, - और / हो सकते हैं। इसलिए #q1-2026 और #trip/lisbon एक-एक नाम हैं। बड़े-छोटे अक्षरों का फर्क नहीं पड़ता:

calc
£20 flight #trip/lisbon परिणाम £20.00
£35 hotel #Trip/Lisbon परिणाम £35.00
total of #trip/lisbon परिणाम £55.00

शब्द से न जुड़ा # अपना पुराना अर्थ रखता है, इसलिए आपका पहले से लिखा टेक्स्ट नहीं बदलता:

आप लिखते हैं यह क्या है
# Weekly shop एक टिप्पणी, क्योंकि हैश के बाद स्पेस है
5 + 5 # comment वहीः हैश के बाद सब कुछ अनदेखा किया जाता है
C#4 in Hz संगीत का शार्प चिह्न, क्योंकि हैश स्वर के नाम से जुड़ा है
#1, Invoice #123 एक संख्या, एक टैग नहींः एक टैग नाम एक अंक से शुरू नहीं हो सकता है
#ff0000, #fff एक रंग कोड
varlig.app/docs#tags फ़्रैगमेंट वाला वेब पता

एक टैग नाम को एक अक्षर से शुरू होना चाहिए, और हैश के बाद तीन, चार, छह या आठ हेक्स अंक एक रंग के रूप में पढ़े जाते हैं, इसलिए #fee एक रंग है जबकि #fees एक टैग है।

एक नोट में टैग और एक ब्लॉक में टैग

साइडबार में नोट व्यवस्थित करने वाले टैग टैग, लिंक और बैकलिंक में समझाए गए हैं। गणना ब्लॉक के अंदर वे उस रूप में काम नहीं करते। ब्लॉक में #food केवल उस पंक्ति के कुल का लेबल है और साइडबार में कभी नहीं दिखता। ब्लॉक के बाहर नोट में #food नोट को व्यवस्थित करता है और हिसाब को नहीं बदलता। दोनों उपयोग चाहिए हों तो टैग दोनों जगह लिखें। एक अंतर और है: नोट के टैग को दूसरे # से बंद करने पर उसमें स्पेस हो सकते हैं, जबकि गणना ब्लॉक का टैग पहली स्पेस पर ही समाप्त हो जाता है।

सूची संदर्भ

कॉल यह क्या करता है
range(start,end) start से end तक के पूर्ण संख्याएँ, दोनों छोरों सहित
range(start,end,step) step के आधार पर गिनें, जो ऋणात्मक या भिन्न हो सकता है लेकिन शून्य नहीं।
length(list), count(list) मानों की संख्या
sort(list) छोटे से बड़े क्रम में; केवल बिना इकाई वाली संख्याएँ
reverse(list) विपरीत क्रम में समान मान; कोई भी मान
unique(list) हर मान को केवल पहली बार आने पर रखें
slice(list,start,end) इंडेक्स start से इंडेक्स end से ठीक पहले तक के मान
map(expression,variable,list) हर मान के लिए व्यंजक की एक बार गणना करें
filter(condition,variable,list) उन मानों को रखें जिनके लिए शर्त true है
calc
range(1, 5) परिणाम [1, 2, 3, 4, 5]
range(0, 100, 25) परिणाम [0, 25, 50, 75, 100]
range(10, 0, -2) परिणाम [10, 8, 6, 4, 2, 0]
scores = [72, 85, 91, 64, 88]
sort(scores) परिणाम [64, 72, 85, 88, 91]
reverse(sort(scores)) परिणाम [91, 88, 85, 72, 64]
slice(sort(scores), 0, 3) परिणाम [64, 72, 85]
unique([4, 2, 4, 6, 2]) परिणाम [4, 2, 6]

reverse(sort(…)) सबसे बड़े को पहले देता है, और slice(sort(…), 0, 3) तीन सबसे छोटे को चुनता है।

स्लाइस बाउंड्स को 0 <= start <= end <= length को संतुष्ट करना चाहिए। बराबर start और end एक ख़ाली सूची देते हैं। कोई scores[0:2] शॉर्टहैंड नहीं है; slice(scores, 0, 2) लिखें।

unique मानों की तुलना ठीक वैसे ही करता है जैसे वे संग्रहीत किए गए हैं, इसलिए 1 kg और 1000 g दो अलग-अलग मानों के रूप में गिने जाते हैं, और दसवें दशमलव स्थान पर भिन्न होने वाले दो परिणाम मर्ज नहीं किए जाते।

मैप और फ़िल्टर

map सूची के हर मान पर अभिव्यक्ति की गणना करता है। filter केवल शर्त पूरी करने वाले मान रखता है। दोनों में पहले अभिव्यक्ति, फिर हर मान के लिए स्थानीय नाम, और आखिर में सूची आती है:

calc
scores = [72, 85, 91, 64, 88]
map(s + 5, s, scores) परिणाम [77, 90, 96, 69, 93]
filter(s >= 80, s, scores) परिणाम [85, 91, 88]
count(filter(s >= 80, s, scores)) परिणाम 3
average(filter(s >= 80, s, scores)) परिणाम 88

filter(s >= 80, s, scores) को "scores में मान s जहां s >= 80" के रूप में पढ़ें। दोनों इकाइयों और धन के साथ काम करते हैंः

calc
map(p * 1.2, p, [£10, £25, £40]) परिणाम [£12.00, £30.00, £48.00]
spend = [£42.50, £18.20, £65.00, £23.30]
filter(x > £30, x, spend) परिणाम [£42.50, £65.00]
sum(filter(x > £30, x, spend)) परिणाम £107.50

आपके द्वारा चुना गया नाम केवल कॉल के अंदर मौजूद है। यह नोट में कहीं और उसी नाम का मान नहीं बदलता हैः

calc
x = 10
map(x * 2, x, [1, 2, 3]) परिणाम [2, 4, 6]
x परिणाम 10

filter में शर्त एक तुलना या कोई अन्य सत्य/असत्य मान होनी चाहिए। एक साधारण संख्या को सत्य के रूप में नहीं माना जाता है, इसलिए filter(x, x, [0, 1, 2]) एक त्रुटि है। एक खाली सूची को मैप करना या फ़िल्टर करना एक खाली सूची देता है।

सूचियों के साथ अंकगणित

सूची के हर मान को एक संख्या से गुणा या भाग दे सकते हैं। समान लंबाई की दो सूचियों को जोड़ने या घटाने पर समान स्थिति के मानों पर कार्रवाई होती है:

calc
[30, 36, 22] / 40 * 100 परिणाम [75, 90, 55]
2 * [3, 1, 4] परिणाम [6, 2, 8]
-[5, -3] परिणाम [-5, 3]
mocks = [62, 70, 60]
finals = [72, 78, 69]
finals - mocks परिणाम [10, 8, 9]
average(finals - mocks) परिणाम 9
[1 kg, 2 kg] + [500 g, 500 g] परिणाम [1.5 kg, 2.5 kg]
[72, 85] == [72, 85] परिणाम true

पहली पंक्ति 40 में से मिले अंकों को प्रतिशत में बदलती है। finals - mocks हर छात्र के अंतिम अंक से उसी छात्र का अभ्यास-परीक्षा अंक घटाती है।

कुछ ऑपरेशन सूचियों पर समर्थित नहीं हैंः

  • एक सूची में एक एकल संख्या जोड़ना, जैसा कि scores + 5 में है। इसके बजाय map(s + 5, s, scores) का उपयोग करें।
  • विभिन्न लंबाई की सूची जोड़ना। लंबाई मिलान करने के लिए मूल्यों को कभी नहीं दोहराया जाता है।
  • दो साधारण सूचियों को * से गुणा करना। समान स्थान के मानों के गुणनफलों का योग चाहिए तो dot इस्तेमाल करें: dot([2, 3, 1], [4, 5, 10]) का उत्तर 33 है—जैसे 4 की दर से दो कॉफ़ी, 5 की दर से तीन चाय और 10 का एक केक। पंक्तियों की सूचियों के बीच * आव्यूह गुणन करता है; सदिश और आव्यूह देखें।

पंक्तियों की सूची

पंक्तियों की सूची छोटी तालिका की तरह काम करती है। average और sum हर कॉलम पर गणना करते हैं, जबकि map हर पंक्ति पर काम कर सकता है:

calc
# Each row is one student: [mock, final]
results = [[62, 72], [70, 78], [60, 69]]
average(results) परिणाम [64, 73]
sum(results) परिणाम [192, 219]
map(average(r), r, results) परिणाम [67, 74, 64.5]

median, min, max और stddev पंक्तियों की सूची स्वीकार नहीं करते हैं। पंक्तियों पर map का उपयोग करें, जैसा कि अंतिम पंक्ति में है, या एक कॉलम को अपनी सूची में खींचें।

इन सभी कार्यों के लिए सटीक नियम उन्नत गणित संदर्भ में हैं।

इसे एक साथ रखना

यह घड़ी से मिली एक सप्ताह की पैदल कदमों की गिनती है, दैनिक लक्ष्य के साथ:

calc
# Steps, Monday to Sunday
steps = [8200, 10400, 6300, 12000, 9100, 7400, 9600]
goal = 9000
sum(steps) परिणाम 63,000
average(steps) परिणाम 9,000
median(steps) परिणाम 9,100
Days on target: count(filter(s >= goal, s, steps)) परिणाम 4
Spread: max(steps) - min(steps) परिणाम 5,700
# Roughly 0.75 m per step
walked = sum(steps) * 0.75 m
walked in km परिणाम 47.25 km

औसत ठीक लक्ष्य के बराबर है, लेकिन केवल चार दिन लक्ष्य पूरा हुआ। सबसे अधिक और सबसे कम कदमों वाले दिन में 5,700 कदमों का अंतर है। goal बदलें या अगले सप्ताह की गिनतियाँ पेस्ट करें; हर पंक्ति अपने आप अपडेट हो जाएगी।