Balanced brackets: Difference between revisions

Content added Content deleted
(Added various BASIC dialects (Applesoft BASIC, Chipmunk Basic, GW-BASIC, MSX Basic, and True BASIC))
imported>Arakov
Line 2,857: Line 2,857:


=={{header|Elena}}==
=={{header|Elena}}==
ELENA 4.x :
ELENA 6.x :
<syntaxhighlight lang="elena">import system'routines;
<syntaxhighlight lang="elena">import system'routines;
import extensions;
import extensions;
import extensions'text;
import extensions'text;

// --- RandomBrackets ---


randomBrackets(len)
randomBrackets(len)
{
{
if (0 == len)
if (0 == len)
{
{
^emptyString
^emptyString
}
}
else
else
{
{
var brackets :=
var brackets :=
Array.allocate(len).populate:(i => $91)
Array.allocate(len).populate::(i => $91)
+
+
Array.allocate(len).populate:(i => $93);
Array.allocate(len).populate::(i => $93);


brackets := brackets.randomize(len * 2);
brackets := brackets.randomize(len * 2);


^ brackets.summarize(new StringWriter()).toString()
^ brackets.summarize(new StringWriter()).toString()
}
}
}
}


extension op
extension op
{
{
get isBalanced()
get isBalanced()
{
{
var counter := new Integer(0);
var counter := new Integer(0);
self.seekEach:(ch => counter.append((ch==$91).iif(1,-1)) < 0);
self.seekEach::(ch => counter.append((ch==$91).iif(1,-1)) < 0);
^ (0 == counter)
^ (0 == counter)
}
}
}
}


public program()
public program()
{
{
for(int len := 0, len < 9, len += 1)
for(int len := 0, len < 9, len += 1)
{
{
var str := randomBrackets(len);
var str := randomBrackets(len);


console.printLine("""",str,"""",str.isBalanced ? " is balanced" : " is not balanced")
console.printLine("""",str,"""",str.isBalanced ? " is balanced" : " is not balanced")
};
};


console.readChar()
console.readChar()
}</syntaxhighlight>
}</syntaxhighlight>
{{out}}
{{out}}