From Test-Scratch-Wiki
() | |
(list::list)
| |
Category | लिस्ट ब्लॉक |
Type | रिपोर्टर ब्लॉक |
Introduced in | स्क्रैच १.३ |
() ब्लॉक एक सूची ब्लॉक तथा एक रिपोर्टर ब्लॉक है। यह ब्लॉक अपनी सूची के आइटम्स को स्ट्रिंग के रूप में रिपोर्ट करता है। जब एक सूची बनाई जाती है, तो इस ब्लॉक का एक वर्शन भी बन जाता है, जिसमें उस सूची का नाम होता है; इसका अर्थ है कि हर नयी सूची के लिए इस ब्लॉक के एक नए वर्शन की रचना होती है। यदि सूची में सारे आइटम्स एक ही अक्षर के हैं, तो आइटम्स के बीच में कुछ भी नहीं होता है। अगर ऐसा नहीं है. तो बीच में स्पेस स्वयं ही आ जाता है। इस ब्लॉक को एक स्टेज मॉनिटर के रूप में डिस्प्ले किया जा सकता है, परन्तु साथ में होने के बजाए, मॉनिटर सूची के आइटम्स को अलग-अलग लाइन्स में दिखाएगा।
उदाहरण उपयोग
लिस्ट रिपोर्टर ब्लॉक का उपयोग अकसर नहीं किया जाता है, ज़्यादातर सूचना सूची के दूसरे रिपोर्टर्स से पता की जा सकती है। इस ब्लॉक के कुछ उपयोग हैं:
- अक्षरों और वाक्यों को साथ में जोड़ना।
say (sentence::list)
- एक चर-पद को इस ब्लॉक की वैल्यू पर सेट करना, जिससे स्प्राइट तक सीमित लिस्ट को ट्रांसफर किया जा सके।
set [unlock v] to (list::list)
दूसरा तरीका
इस ब्लॉक का वर्कअराउंड है:
set [count v] to [0] set [all are 1 v] to [true] repeat until <<(all are 1) = [false]> or <(count) > (length of [list v])>> change [count v] by (1) if <(length of (item (count) of [list v])) > [1]> then set [all are 1 v] to [false] end end if <(all are 1) = [true]> then set [report v] to [] set [count v] to [0] repeat (length of [list v]) change [count v] by (1) set [report v] to (join (report) (item (count) of [list v])) end else set [report v] to (item (1) of [list v]) set [count v] to [1] repeat ((length of [list v]) - (1)) change [count v] by (1) set [report v] to (join (report) (join [] (item (count) of [list v]))) end end
बग्स
%m, %n या %s एंटर करके लिस्ट ब्लॉक में एक इनपुट बनाया जा सकता था। इसे स्क्रैच २.० के वर्शन ४२३ में ठीक किया गया। स्क्रैच ३.० से पहले, सूचियों का नाम नहीं बदला जा सकता था, जबकि चर-पदों का नाम बदला जा सकता था।