मान लीजिए आपको 1000 तक के सभी गैर-ऋणात्मक पूर्णांक चाहिए। अगर इन सबको एक ऐरे में टाइप करना पड़े, तो यह बेतुका लगेगा।
इसी के लिए हमारे पास range टाइप है:
julia> 0:1000
0:1000
julia> typeof(0:1000)
UnitRange{Int64}
रेंज बहुत आम हैं। इनसे सिर्फ़ आपकी टाइपिंग ही नहीं बचती, ये फंक्शन से रिटर्न टाइप के रूप में भी आती हैं।
ध्यान दीजिए कि रेंज वेक्टर नहीं होतीं। ये असल में एक सीक्वेंस बनाने के निर्देशों का समूह भर हैं ("लेज़ी" इवैल्यूएशन, या एक "इटरेटर")।
अगर आपको रेंज को वेक्टर के रूप में चाहिए, तो उसे बदलने के लिए collect() फंक्शन का इस्तेमाल कीजिए:
julia> collect(0:5)
6-element Vector{Int64}:
0
1
2
3
4
5
स्टेप साइज़ भी बताया जा सकता है, यहाँ 0.3:
julia> collect(1.0:0.3:2.0)
4-element Vector{Float64}:
1.0
1.3
1.6
1.9
तो सिंटैक्स है start:stepsize:stop.
जैसा कि पूर्णांक वाले उदाहरण में दिखा, दोनों सिरों की सीमाएँ समावेशी होती हैं।
अगर स्टेप साइज़ stop - start में ठीक-ठीक विभाजित नहीं होता, तो अंतिम एलिमेंट stop से आगे नहीं जाएगा।
रेंज में गैर-संख्यात्मक सीक्वेंस भी इस्तेमाल किए जा सकते हैं। सबसे आसान उदाहरण ASCII अक्षरों का है:
julia> 'a':'d'
'a':1:'d'
julia> typeof('a':'d')
StepRange{Char, Int64}
julia> collect('a':'d')
4-element Vector{Char}:
'a': ASCII/Unicode U+0061 (category Ll: Letter, lowercase)
'b': ASCII/Unicode U+0062 (category Ll: Letter, lowercase)
'c': ASCII/Unicode U+0063 (category Ll: Letter, lowercase)
'd': ASCII/Unicode U+0064 (category Ll: Letter, lowercase)
Char टाइप पर और विस्तार से किसी दूसरे कॉन्सेप्ट में चर्चा होगी।
अभी के लिए इन्हें सिंगल कोट्स में लिखे एक-एक अक्षर मान लीजिए।
किसी रेंज की सीमाएँ first() और last() से जाँचिए।
r = 1:10 # => 1:10
first(r) # => 1
last(r) # => 10
वेक्टर इंडेक्सिंग में पूर्णांक रेंज और वेक्टर दोनों इस्तेमाल किए जा सकते हैं:
nums = collect(10.0:50.0)
nums[3:2:7] # gives [12.0, 14.0, 16.0]
nums[ [3, 5, 7] ] # also gives [12.0, 14.0, 16.0]
आपको शतरंज इतना पसंद है कि आप खेल का अपना संस्करण लिखना चाहते हैं। हाँ, हो सकता है कि शतरंज के बहुत सारे कार्यान्वयन पहले से ही ऑनलाइन उपलब्ध हों, लेकिन आपका वाला अनोखा होगा!
लेकिन इससे पहले कि आप अपनी कल्पना को खुली छूट दें, आपको बुनियादी बातों का ध्यान रखना होगा। चलिए बोर्ड बनाकर शुरू करते हैं।
शतरंज के बोर्ड के हर खाने की पहचान एक अक्षर और एक संख्या की जोड़ी से होती है। खानों के खड़े स्तंभ फाइल कहलाते हैं और इन्हें A से H तक के अक्षरों से चिह्नित किया जाता है। खानों की आड़ी पंक्तियाँ रैंक कहलाती हैं और इन्हें 1 से 8 तक संख्याओं से चिह्नित किया जाता है।
rank_range() फंक्शन बनाइए। इसे 1 से 8 तक के पूर्णांकों की एक रेंज लौटानी चाहिए।
julia> rank_range()
# output omitted
file_range() फंक्शन बनाइए।
इसे बड़े अक्षर A से बड़े अक्षर H तक के अक्षरों की एक रेंज लौटानी चाहिए।
julia> file_range()
# output omitted
ranks() फंक्शन बनाइए। इसे 1 से 8 तक के पूर्णांकों का एक वेक्टर लौटाना चाहिए।
वेक्टर को हाथ से न लिखिए, इसे rank_range() फंक्शन से लौटाई गई रेंज से बनाइए।
julia> ranks()
[1, 2, 3, 4, 5, 6, 7, 8]
files फंक्शन बनाइए। इसे 'A' से 'H' तक के अक्षरों का एक वेक्टर लौटाना चाहिए।
वेक्टर को हाथ से न लिखिए, इसे file_range() फंक्शन से लौटाई गई रेंज से बनाइए।
julia> files()
['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']
Exercism पर साइन अप कीजिए और Julia को 35 कॉन्सेप्ट128 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।