We are currently working on new rules for what content should and shouldn't be allowed on this website, and are looking for feedback! See Esolang:2026 topicality proposal to view and give feedback on the current draft.

Talk:String rewriting paradigm

From Esolang
Jump to navigation Jump to search

Very Misnamed?

I'm not sure that this is a string-rewriting paradigm language at all. It seems to simply append characters from a stack or insert characters, so it's a character output only stack-based language with no control flow other than infinite looping? There is no way to specify an arbitrary rewrite rule like the currently featured language Thue. The most rewrite like aspect is [C] => [C][C], but it looks like it is meant to be processed sequentially as a result of the imperative command d, rather than being a rule. I also don't quite see how the looping counter code !@: loops unless the output from : is appended to the program, and then I don't see how it counts. I accidentally an interpreter in Perl. Salpynx (talk) 23:26, 17 March 2019 (UTC)

#!/usr/bin/perl
use strict;
use warnings;
# Character Output Without Claimed Rewrite Paradigm Parser:
foreach(<STDIN>) {
        my $i = 0;
        my $stack;
        chomp;
        while ($i < length) {
                # [C] are appended
                # no rewriting happening
                s/^(.{$i}d)(.)/$1$2$2/; # even though this is a substitution, it is only inserting chars
                $stack .= $1 if /^.{$i}!.*(.)$/;
                $_ .= chop $stack if /^(.{$i})\@/;
                $_ .= $1 if /^(.{$i}):/;
                print;
                print " (" . $i++ . ")\n";
        }
}