Julia Language
लूप्स के लिए
खोज…
वाक्य - विन्यास
- मैं इसके लिए में; ...; समाप्त
- निंदा करते हुए; ...; समाप्त
- टूटना
- जारी रखें
- @ इटैलर (ओप) आई फॉर आईर; ...; समाप्त
- @ इटैलर में I के लिए समानांतर; ...; समाप्त
- @ भूलो लेबल
- @ लैबल लेबल
टिप्पणियों
जब भी यह कोड को कम और पढ़ने में आसान बनाता है, तो लूप के बजाय उच्च-क्रम वाले फ़ंक्शन, जैसे कि map
या filter
का उपयोग करने पर विचार करें।
फिज बज़
एक के लिए उपयोग आम तौर पर for
पाश एक पूर्वनिर्धारित सीमा या संग्रह से अधिक पुनरावृति, और इसके सभी तत्वों के लिए एक ही काम करने के लिए है। उदाहरण के लिए, यहाँ हम एक गठबंधन for
एक सशर्त साथ पाश if
- elseif
- else
बयान :
for i in 1:100
if i % 15 == 0
println("FizzBuzz")
elseif i % 3 == 0
println("Fizz")
elseif i % 5 == 0
println("Buzz")
else
println(i)
end
end
यह क्लासिक फ़िज़ बज़ साक्षात्कार प्रश्न है। (छोटा) आउटपुट है:
1
2
Fizz
4
Buzz
Fizz
7
8
सबसे छोटा अभाज्य गुणनखंड ज्ञात कीजिये
कुछ स्थितियों में, कोई संपूर्ण लूप खत्म करने से पहले किसी फ़ंक्शन से वापस लौटना चाहता है। इसके लिए return
स्टेटमेंट का इस्तेमाल किया जा सकता है।
function primefactor(n)
for i in 2:n
if n % i == 0
return i
end
end
@assert false # unreachable
end
उपयोग:
julia> primefactor(100)
2
julia> primefactor(97)
97
लूप्स को break
स्टेटमेंट के साथ जल्दी समाप्त किया जा सकता है, जो पूरे फ़ंक्शन के बजाय सिर्फ एन्कोडिंग लूप को समाप्त करता है।
बहुआयामी पुनरावृत्ति
जूलिया में, एक लूप के लिए कई आयामों पर पुनरावृति निर्दिष्ट करने के लिए अल्पविराम ( ,
) हो सकता है। यह एक लूप को दूसरे के भीतर घोंसले में डालने के समान है, लेकिन अधिक कॉम्पैक्ट हो सकता है। उदाहरण के लिए, नीचे दिया गया कार्य दो पुनरावृत्तियों के कार्टेशियन उत्पाद के तत्वों को उत्पन्न करता है:
function cartesian(xs, ys)
for x in xs, y in ys
produce(x, y)
end
end
उपयोग:
julia> collect(@task cartesian(1:2, 1:4))
8-element Array{Tuple{Int64,Int64},1}:
(1,1)
(1,2)
(1,3)
(1,4)
(2,1)
(2,2)
(2,3)
(2,4)
हालांकि, किसी भी आयाम के सरणियों पर अनुक्रमण eachindex
साथ किया जाना चाहिए, न कि बहुआयामी लूप (यदि संभव हो) के साथ:
s = zero(eltype(A))
for ind in eachindex(A)
s += A[ind]
end
कटौती और समानांतर छोरों
जूलिया मैक्रोज़ प्रदान करता है ताकि कई मशीनों या श्रमिकों में गणना को सरल बनाया जा सके। उदाहरण के लिए, निम्नलिखित कुछ वर्गों की संख्या की गणना करता है, संभवतः समानांतर में।
function sumofsquares(A)
@parallel (+) for i in A
i ^ 2
end
end
उपयोग:
julia> sumofsquares(1:10)
385
इस विषय पर अधिक जानकारी के लिए , समानांतर प्रक्रिया विषय के भीतर @parallel
समानांतर पर उदाहरण देखें।