जब शाब्दिक रूप में स्काला में एक नोड अनुक्रम की घोषणा आप उपज एक scala.xml.NodeBuffer
जो परिवर्तनशील है (यह फैली ArrayBuffer[scala.xml.Node]
जो बारी में Seq[scala.xml.Node]
फैली):क्यों एक्सएमएल अक्षर स्केल में परिवर्तनीय वस्तुओं का उत्पादन करते हैं?
scala> val xml = <a /><b />
xml: scala.xml.NodeBuffer = ArrayBuffer(<a></a>, <b></b>)
scala> xml += <c />
res46: xml.type = ArrayBuffer(<a></a>, <b></b>, <c></c>)
scala> xml
res47: scala.xml.NodeBuffer = ArrayBuffer(<a></a>, <b></b>, <c></c>)
यह अपरिवर्तनीय वस्तुओं और कार्यात्मक प्रोग्रामिंग का उपयोग करने का स्काला के दर्शन के विपरीत है। क्यों डिफॉल्ट डिफ़ॉल्ट रूप से अपरिवर्तनीय हैं, लेकिन एक्सएमएल अक्षर (जो प्रथम श्रेणी के नागरिक हैं) इस मामले में नहीं हैं?
हालांकि, क्या XML अक्षरों का उपयोग करके एक अपरिवर्तनीय नोड अनुक्रम को सुरक्षित रूप से परिभाषित करना संभव है?