Execute a Markov algorithm: Difference between revisions

→‎{{header|D}}: better not use capitals, they have a special meaning
(Simplified D code)
(→‎{{header|D}}: better not use capitals, they have a special meaning)
Line 949:
 
void main() {
auto Rrules = split(splitlines(cast(string)read("rules.txt")), "");
auto Ttests = splitlines(cast(string)read("tests.txt"));
 
foreach (i, rulet; Rtests) {
string[][] capt;
foreach (line; rulerules[i]) {
auto m = match(line, r"^([^#]*?)\s+->\s+(\.?)(.*)");
if (!m.empty) capt ~= array(m.captures)[1 .. $];
}
REDO: auto copy = T[i]t;
 
REDO: auto copy = T[i];
foreach (c; capt) {
T[i]t = T[i]t.replace(c[0], c[2]);
if (c[1] == ".") break;
if (T[i]t != copy) goto REDO;
}
writeln(T[i]t);
}
}</lang>
Anonymous user