On 4/1/20 3:35 PM, Net wrote:
from the below code, the expression "case [c]":
void main()
{
import std.stdio, std.string, std.algorithm, std.conv;
// Reduce the RPN expression using a stack
readln.split.fold!((stack, op)
{
switch (op)
{
// Generate operator switch cases statically
static foreach (c; "+-*/")
case [c]:
return stack[0 .. $ - 2] ~
mixin("stack[$ - 2] " ~ c ~
" stack[$ - 1]");
default: return stack ~ op.to!real;
}
})((real[]).init).writeln;
}
heh, it's an array of one character, i.e. an immutable char[] of length
1 (or a string).
Kind of clever actually.
-Steve