2009-09-23 25 views
6

मैं निम्नलिखित कोड का उपयोग कर Oz में एक सूची बनाने के लिए कोशिश कर रहा हूँ:मैं ओज़ में एक सूची कैसे बना सकता हूं?

local Loop10 Xs in 
    proc {Loop10 I} 
     Xs={List.append Xs I} 
     if I == 10 then skip 
     else 
    {Browse I} 
    {Loop10 I+1} 
     end 
     {Browse Xs} 
    end 
{Loop10 0} 
end 

Mozart compiler पता चलता है कि कोड को स्वीकार कर लिया है, लेकिन कोई ब्राउज़ खिड़की को खोलता है। मैं बस ओज़ में एक सूची बनाने की कोशिश कर रहा हूं।

कोड के साथ क्या गलत है?

उत्तर

7

सुनिश्चित नहीं हैं कि तुम क्या चाहते हो कि कि है, लेकिन एक तुम कर सकते हो एक्स और वाई (सम्मिलित) के बीच सभी पूर्ण संख्याओं की सूची बनाने के लिए:

local 
    fun {Loop From To} 
     if From > To 
     then nil 
     else From | {Loop From+1 To} 
     end 
    end 
in 
    {Browse {Loop 0 10}} % Displays: [0,1,2,3,4,5,6,7,8,9,10] 
end 
+0

धन्यवाद। मैं वास्तव में एक ही विधि पर खुद को ठोकर खाई। यद्यपि उचित सूची वापस करने के लिए लूप को दूसरा तर्क होना चाहिए। ताकि सूची हमेशा एक शून्य के साथ समाप्त हो। धन्यवाद। –

+0

ओह, आप सही हैं। यह अभी तय है। – sepp2k

+1

मेरी राय में, यह 'अधिक से अधिक' करने के लिए अधिक सुरक्षित और अधिक तार्किक है क्योंकि आप "से" से "टू" "दे सकते हैं और शून्य प्राप्त कर सकते हैं (और उपर्युक्त प्रोग्राम की तरह एक अनंत सूची नहीं) – yakoudbz

3

भी कारण है कि आप किसी भी ब्राउज़र नहीं मिलता है

Xs={List.append Xs I} 

यह पहले भी बताया गया परिवर्तनशील केवल एक बार सौंपा जा सकता है लेकिन वहाँ है कि इस लाइन के साथ गलत है कुछ और है: खिड़की क्योंकि मूल्यांकन धागा इस लाइन की वजह से निलंबित है। आप Xs को मुझे जोड़ने का प्रयास करते हैं लेकिन Xs अभी भी अनबाउंड है। इस प्रकार धागा तब तक निलंबित हो जाता है जब तक कोई मान Xs पर असाइन नहीं किया गया हो।

सहभागी इस दर्ज करें:

declare Xs in 
{Browse {List.append Xs [2 3 4]}} 

जैसा कि आप देख कुछ नहीं होता, कोई ब्राउज़र को खोलता है। अब इसे दर्ज करें:

Xs= [1] 

Xs के बाद से बाध्य हो जाता है यह पहली बार मूल्यांकन "सूत्र" और ब्राउज़र पॉप अप होगा बातें बताता है।

पीएस देर से उत्तर के लिए खेद है, मुझे बस ओज़ में दिलचस्पी है: पी

+0

यह तब काम करता था जब मैंने 'Append' के साथ 'List.append' को बदल दिया – Anand

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