aboutsummaryrefslogtreecommitdiff
path: root/example/turing/turing.cc
diff options
context:
space:
mode:
authorAdrian Kummerlaender2015-03-15 11:37:19 +0100
committerAdrian Kummerlaender2015-03-15 11:37:19 +0100
commit47a81aa2629fe3c729ded7ea6ce2f5eb06e895c4 (patch)
tree77326acce23688628300f2597cff03ce3233cbc1 /example/turing/turing.cc
parent73be8fb60adc4723421e73d38331f793f1d16886 (diff)
downloadTypeAsValue-47a81aa2629fe3c729ded7ea6ce2f5eb06e895c4.tar
TypeAsValue-47a81aa2629fe3c729ded7ea6ce2f5eb06e895c4.tar.gz
TypeAsValue-47a81aa2629fe3c729ded7ea6ce2f5eb06e895c4.tar.bz2
TypeAsValue-47a81aa2629fe3c729ded7ea6ce2f5eb06e895c4.tar.lz
TypeAsValue-47a81aa2629fe3c729ded7ea6ce2f5eb06e895c4.tar.xz
TypeAsValue-47a81aa2629fe3c729ded7ea6ce2f5eb06e895c4.tar.zst
TypeAsValue-47a81aa2629fe3c729ded7ea6ce2f5eb06e895c4.zip
Updated _Turing machine_ comments to reflect tape loggingHEADmaster
Diffstat (limited to 'example/turing/turing.cc')
-rw-r--r--example/turing/turing.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/example/turing/turing.cc b/example/turing/turing.cc
index f015e02..c951c5a 100644
--- a/example/turing/turing.cc
+++ b/example/turing/turing.cc
@@ -53,14 +53,22 @@ const auto printField = [](const auto x) {
template <typename States>
void printStates() {
+ // (define position (car (head states)))
using position = tav::Car<tav::Head<States>>;
+ // (define tape (cdr (head states)))
using tape = tav::Cdr<tav::Head<States>>;
+ // (define prefix (make-list 3 " "))
using prefix = tav::MakeList<tav::Size<3>, tav::Char<' '>>;
+ // (for-each printField (concatenate prefix tape))
tav::runtime::for_each<tav::Concatenate<prefix, tape>>(printField);
std::cout << std::endl;
+ // (for-each printField
+ // (concatenate prefix
+ // (make-list position " ")
+ // (list "^")))
tav::runtime::for_each<tav::Concatenate<
prefix,
tav::MakeList<position, tav::Char<' '>>,
@@ -83,6 +91,7 @@ int main(int, char **) {
<< std::endl;
printStates<
+ // (run mirror 1 mirror_tape 0)
machine::run<
mirror,
tav::Size<1>,
@@ -98,6 +107,7 @@ int main(int, char **) {
<< std::endl;
printStates<
+ // (run busy_beaver "A" busy_beaver_tape 6)
machine::run<
busy_beaver,
tav::Char<'A'>,
@@ -113,6 +123,7 @@ int main(int, char **) {
<< std::endl;
printStates<
+ // (run binary_increment 0 binary_increment_tape 0)
machine::run<
binary_increment,
tav::Size<0>,