खोज…


वाक्य - विन्यास

  • मैं इसके लिए में; ...; समाप्त
  • निंदा करते हुए; ...; समाप्त
  • टूटना
  • जारी रखें
  • @ इटैलर (ओप) आई फॉर आईर; ...; समाप्त
  • @ इटैलर में 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 समानांतर पर उदाहरण देखें।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow