RosettaCodeData/Task/Universal-Turing-machine/Zkl/universal-turing-machine-2.zkl
2023-07-01 13:44:08 -04:00

25 lines
1.1 KiB
Text

println("Simple incrementer");
turing("q0",D(0,Rt, 1,Rt, 2,Rt),0, // Incrementer
D("q0",D(1,T(1,Rt,"q0"), Void,T(1,Sy,Void)) ) );
println("\nThree-state busy beaver");
turing("a",D(),0, // Three-state busy beaver
SD("a",D(Void,T(1,Rt,"b"), 1,T(1,Lt,"c")),
"b",D(Void,T(1,Lt,"a"), 1,T(1,Rt,"b")),
"c",D(Void,T(1,Lt,"b"), 1,T(1,Sy,Void)) ) );
println("\nSort");
turing("A",D(T(2,2,2,1,2,2,1,2,1,2,1,2,1,2).enumerate()),0,
SD("A",D(1,T(1,Rt,"A"), 2,T(3,Rt,"B"), Void,T(Void,Lt,"E")),
"B",D(1,T(1,Rt,"B"), 2,T(2,Rt,"B"), Void,T(Void,Lt,"C")),
"C",D(1,T(2,Lt,"D"), 2,T(2,Lt,"C"), 3, T(2, Lt,"E")),
"D",D(1,T(1,Lt,"D"), 2,T(2,Lt,"D"), 3, T(1, Rt,"A")),
"E",D(1,T(1,Lt,"E"), Void,T(Void,Rt,Void)) ) ,False);
println("\nFive-state busy beaver");
turing("A",D(),0,
SD("A",D(Void,T(1,Rt,"B"), 1,T(1, Lt,"C")),
"B",D(Void,T(1,Rt,"C"), 1,T(1, Rt,"B")),
"C",D(Void,T(1,Rt,"D"), 1,T(Void,Lt,"E")),
"D",D(Void,T(1,Lt,"A"), 1,T(1, Lt,"D")),
"E",D(Void,T(1,Sy,Void), 1,T(Void,Lt,"A")) ) ,False);