Simulate Bitwise Cyclic TagSimulate a Minsky Register Machine (I)Simulate a Minsky Register Machine...

How did the USSR manage to innovate in an environment characterized by government censorship and high bureaucracy?

What makes Graph invariants so useful/important?

Validation accuracy vs Testing accuracy

How can the DM most effectively choose 1 out of an odd number of players to be targeted by an attack or effect?

Why Is Death Allowed In the Matrix?

New order #4: World

How is the claim "I am in New York only if I am in America" the same as "If I am in New York, then I am in America?

Is there a familial term for apples and pears?

Why is an old chain unsafe?

Why is "Reports" in sentence down without "The"

Circuitry of TV splitters

Can a German sentence have two subjects?

Why doesn't Newton's third law mean a person bounces back to where they started when they hit the ground?

A newer friend of my brother's gave him a load of baseball cards that are supposedly extremely valuable. Is this a scam?

What is the logic behind how bash tests for true/false?

I probably found a bug with the sudo apt install function

Why is the design of haulage companies so “special”?

Is it tax fraud for an individual to declare non-taxable revenue as taxable income? (US tax laws)

What do you call a Matrix-like slowdown and camera movement effect?

Is there a minimum number of transactions in a block?

How does one intimidate enemies without having the capacity for violence?

Do airline pilots ever risk not hearing communication directed to them specifically, from traffic controllers?

Motorized valve interfering with button?

Example of a relative pronoun



Simulate Bitwise Cyclic Tag


Simulate a Minsky Register Machine (I)Simulate a Minsky Register Machine (II)Simulate any 1D cellular automatonTuring Machine SimulatorInterpret /// (pronounced 'slashes')Simulate a Cyclic Tag SystemOutput “Fit” numbersThe Binary Square Diagonal SequenceHalting Problem for Simplified HexagonySimulate a Cisco Ping













2












$begingroup$


Challenge



Given two strings in any default I/O format, do the following:



NOTE: The challenge will refer to the first string as the "data" and the second referred to as the "program".




  1. Change the program to an infinite string which is just the program repeated infinitely (e.g. 10 --> 1010101010...). The challenge will refer to this as the "infinite program"


  2. While the data is non-empty, do the following while looping over the infinite program:



    a. If the current command is "0", delete the left-most bit in the data. If the data is empty, "0" does not do anything.



    b. If the current command is "1", append the next character in the program to the data if the left-most bit in the data is a one.



    c. If the data is not empty now, output the data.




Test Cases



Data is the left side of the input and the program is the right side.



100, 0 --> 00, 0
1111, 1 --> 11111, 111111, 1111111, ...
10, 011 --> 0, 0, 0
1110, 011 --> 110, 1101, 11010, 1010...


Notes




  • The data and program will consist of only 0s and 1s

  • For data/programs that do not halt, your program does not need to halt.

  • The data and program will not be empty in the input.

  • You may have multiple trailing and leading newlines


  • Standard Loopholes are forbidden

  • You can use any convenient I/O format


As always with code-golf, shortest code wins!










share|improve this question











$endgroup$












  • $begingroup$
    This seems a duplicate of /questions/40300/simulate-a-cyclic-tag-system
    $endgroup$
    – Sanchises
    8 hours ago










  • $begingroup$
    @Sanchises Seems like a borderline duplicate to that, but you have to get the result at a certain generation and that is for any cyclic tag system.
    $endgroup$
    – MilkyWay90
    8 hours ago










  • $begingroup$
    in the first test case, 100 goes to 10 on cmd 0, whose definition is "delete the left-most bit in the data." wouldn't the leftmost bit of 100 be 1?
    $endgroup$
    – Jonah
    8 hours ago










  • $begingroup$
    @Jonah Oh, missed that
    $endgroup$
    – MilkyWay90
    8 hours ago










  • $begingroup$
    in case (b), if you do the append, does the instruction pointer move right one or two characters?
    $endgroup$
    – Sparr
    7 hours ago
















2












$begingroup$


Challenge



Given two strings in any default I/O format, do the following:



NOTE: The challenge will refer to the first string as the "data" and the second referred to as the "program".




  1. Change the program to an infinite string which is just the program repeated infinitely (e.g. 10 --> 1010101010...). The challenge will refer to this as the "infinite program"


  2. While the data is non-empty, do the following while looping over the infinite program:



    a. If the current command is "0", delete the left-most bit in the data. If the data is empty, "0" does not do anything.



    b. If the current command is "1", append the next character in the program to the data if the left-most bit in the data is a one.



    c. If the data is not empty now, output the data.




Test Cases



Data is the left side of the input and the program is the right side.



100, 0 --> 00, 0
1111, 1 --> 11111, 111111, 1111111, ...
10, 011 --> 0, 0, 0
1110, 011 --> 110, 1101, 11010, 1010...


Notes




  • The data and program will consist of only 0s and 1s

  • For data/programs that do not halt, your program does not need to halt.

  • The data and program will not be empty in the input.

  • You may have multiple trailing and leading newlines


  • Standard Loopholes are forbidden

  • You can use any convenient I/O format


As always with code-golf, shortest code wins!










share|improve this question











$endgroup$












  • $begingroup$
    This seems a duplicate of /questions/40300/simulate-a-cyclic-tag-system
    $endgroup$
    – Sanchises
    8 hours ago










  • $begingroup$
    @Sanchises Seems like a borderline duplicate to that, but you have to get the result at a certain generation and that is for any cyclic tag system.
    $endgroup$
    – MilkyWay90
    8 hours ago










  • $begingroup$
    in the first test case, 100 goes to 10 on cmd 0, whose definition is "delete the left-most bit in the data." wouldn't the leftmost bit of 100 be 1?
    $endgroup$
    – Jonah
    8 hours ago










  • $begingroup$
    @Jonah Oh, missed that
    $endgroup$
    – MilkyWay90
    8 hours ago










  • $begingroup$
    in case (b), if you do the append, does the instruction pointer move right one or two characters?
    $endgroup$
    – Sparr
    7 hours ago














2












2








2





$begingroup$


Challenge



Given two strings in any default I/O format, do the following:



NOTE: The challenge will refer to the first string as the "data" and the second referred to as the "program".




  1. Change the program to an infinite string which is just the program repeated infinitely (e.g. 10 --> 1010101010...). The challenge will refer to this as the "infinite program"


  2. While the data is non-empty, do the following while looping over the infinite program:



    a. If the current command is "0", delete the left-most bit in the data. If the data is empty, "0" does not do anything.



    b. If the current command is "1", append the next character in the program to the data if the left-most bit in the data is a one.



    c. If the data is not empty now, output the data.




Test Cases



Data is the left side of the input and the program is the right side.



100, 0 --> 00, 0
1111, 1 --> 11111, 111111, 1111111, ...
10, 011 --> 0, 0, 0
1110, 011 --> 110, 1101, 11010, 1010...


Notes




  • The data and program will consist of only 0s and 1s

  • For data/programs that do not halt, your program does not need to halt.

  • The data and program will not be empty in the input.

  • You may have multiple trailing and leading newlines


  • Standard Loopholes are forbidden

  • You can use any convenient I/O format


As always with code-golf, shortest code wins!










share|improve this question











$endgroup$




Challenge



Given two strings in any default I/O format, do the following:



NOTE: The challenge will refer to the first string as the "data" and the second referred to as the "program".




  1. Change the program to an infinite string which is just the program repeated infinitely (e.g. 10 --> 1010101010...). The challenge will refer to this as the "infinite program"


  2. While the data is non-empty, do the following while looping over the infinite program:



    a. If the current command is "0", delete the left-most bit in the data. If the data is empty, "0" does not do anything.



    b. If the current command is "1", append the next character in the program to the data if the left-most bit in the data is a one.



    c. If the data is not empty now, output the data.




Test Cases



Data is the left side of the input and the program is the right side.



100, 0 --> 00, 0
1111, 1 --> 11111, 111111, 1111111, ...
10, 011 --> 0, 0, 0
1110, 011 --> 110, 1101, 11010, 1010...


Notes




  • The data and program will consist of only 0s and 1s

  • For data/programs that do not halt, your program does not need to halt.

  • The data and program will not be empty in the input.

  • You may have multiple trailing and leading newlines


  • Standard Loopholes are forbidden

  • You can use any convenient I/O format


As always with code-golf, shortest code wins!







code-golf interpreter






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 4 hours ago







MilkyWay90

















asked 8 hours ago









MilkyWay90MilkyWay90

695315




695315












  • $begingroup$
    This seems a duplicate of /questions/40300/simulate-a-cyclic-tag-system
    $endgroup$
    – Sanchises
    8 hours ago










  • $begingroup$
    @Sanchises Seems like a borderline duplicate to that, but you have to get the result at a certain generation and that is for any cyclic tag system.
    $endgroup$
    – MilkyWay90
    8 hours ago










  • $begingroup$
    in the first test case, 100 goes to 10 on cmd 0, whose definition is "delete the left-most bit in the data." wouldn't the leftmost bit of 100 be 1?
    $endgroup$
    – Jonah
    8 hours ago










  • $begingroup$
    @Jonah Oh, missed that
    $endgroup$
    – MilkyWay90
    8 hours ago










  • $begingroup$
    in case (b), if you do the append, does the instruction pointer move right one or two characters?
    $endgroup$
    – Sparr
    7 hours ago


















  • $begingroup$
    This seems a duplicate of /questions/40300/simulate-a-cyclic-tag-system
    $endgroup$
    – Sanchises
    8 hours ago










  • $begingroup$
    @Sanchises Seems like a borderline duplicate to that, but you have to get the result at a certain generation and that is for any cyclic tag system.
    $endgroup$
    – MilkyWay90
    8 hours ago










  • $begingroup$
    in the first test case, 100 goes to 10 on cmd 0, whose definition is "delete the left-most bit in the data." wouldn't the leftmost bit of 100 be 1?
    $endgroup$
    – Jonah
    8 hours ago










  • $begingroup$
    @Jonah Oh, missed that
    $endgroup$
    – MilkyWay90
    8 hours ago










  • $begingroup$
    in case (b), if you do the append, does the instruction pointer move right one or two characters?
    $endgroup$
    – Sparr
    7 hours ago
















$begingroup$
This seems a duplicate of /questions/40300/simulate-a-cyclic-tag-system
$endgroup$
– Sanchises
8 hours ago




$begingroup$
This seems a duplicate of /questions/40300/simulate-a-cyclic-tag-system
$endgroup$
– Sanchises
8 hours ago












$begingroup$
@Sanchises Seems like a borderline duplicate to that, but you have to get the result at a certain generation and that is for any cyclic tag system.
$endgroup$
– MilkyWay90
8 hours ago




$begingroup$
@Sanchises Seems like a borderline duplicate to that, but you have to get the result at a certain generation and that is for any cyclic tag system.
$endgroup$
– MilkyWay90
8 hours ago












$begingroup$
in the first test case, 100 goes to 10 on cmd 0, whose definition is "delete the left-most bit in the data." wouldn't the leftmost bit of 100 be 1?
$endgroup$
– Jonah
8 hours ago




$begingroup$
in the first test case, 100 goes to 10 on cmd 0, whose definition is "delete the left-most bit in the data." wouldn't the leftmost bit of 100 be 1?
$endgroup$
– Jonah
8 hours ago












$begingroup$
@Jonah Oh, missed that
$endgroup$
– MilkyWay90
8 hours ago




$begingroup$
@Jonah Oh, missed that
$endgroup$
– MilkyWay90
8 hours ago












$begingroup$
in case (b), if you do the append, does the instruction pointer move right one or two characters?
$endgroup$
– Sparr
7 hours ago




$begingroup$
in case (b), if you do the append, does the instruction pointer move right one or two characters?
$endgroup$
– Sparr
7 hours ago










7 Answers
7






active

oldest

votes


















1












$begingroup$

Haskell, 77 71 bytes



f@(d:e)#(p:q)=f:[[e,e],[f,f++[q!!0]]]!!p!!d#q
_#_=[]
a!b=tail$a#cycle b


Try it online!






share|improve this answer











$endgroup$





















    1












    $begingroup$


    C# (Visual C# Interactive Compiler), 82 bytes





    m=>n=>{for(int i=0;m!="";Print(m=n[i++]<49?m.Substring(1):m[0]>48?m+n[i]:m))n+=n;}


    Try it online!






    share|improve this answer











    $endgroup$













    • $begingroup$
      what are the significance of the 48 and 49, out of curiosity?
      $endgroup$
      – Jonah
      6 hours ago






    • 1




      $begingroup$
      @Jonah 48 is the ASCII value of 0, and 49 is the ASCII value of 1
      $endgroup$
      – Embodiment of Ignorance
      6 hours ago












    • $begingroup$
      shouldn't you use 0 and 1 instead here :P
      $endgroup$
      – ASCII-only
      57 mins ago










    • $begingroup$
      @ASCII-only I'm using a string, not an array.
      $endgroup$
      – Embodiment of Ignorance
      56 mins ago










    • $begingroup$
      @EmbodimentofIgnorance why not use a List and Skip, or something like that
      $endgroup$
      – ASCII-only
      55 mins ago





















    0












    $begingroup$


    J, 65 bytes



    (([:(][echo)(}.@[)`([,{.@[#1{],])@.({.@]));1|.])&>/^:(0<0#@{>)^:5


    Try it online!



    I may golf this further later. Note the 5 at the end would be infinity _ in the actual program, but I've left it there to make running the non-halting examples easier.






    share|improve this answer











    $endgroup$





















      0












      $begingroup$


      Python 2, 96 82 bytes





      def g(d,p):
      while d:
      c=p[0];p=p[1:]+[c];d=[d[1:],d+[p[0]]*d[0]][c]
      if d:yield d


      Try it online!



      Stealing a bit from Emodiment of Ignorance's answer...



      A generator which uses lists of 1's and 0's for input / output.






      share|improve this answer











      $endgroup$





















        0












        $begingroup$


        Jelly, 40 bytes



        ;€Ø2œịxØ1œị$Ʋ$Ḋ€2,1œị$?1¦ṙ€1$2¦µ⁺1ịGṄƲ¿Ḣ


        Try it online!



        I’ve assumed trailing newlines are ok. I’ve also gone with a list of two lists of zeros and ones as input, and output to stdout.






        share|improve this answer









        $endgroup$





















          0












          $begingroup$


          Python 3, 74 bytes





          def f(d,p):
          while d:c,*p=p+p[:1];d=(d[1:],d+p[:1]*d[0])[c];d and print(d)


          Try it online!



          Arguments: d: data, p: program.






          share|improve this answer









          $endgroup$





















            0












            $begingroup$


            Python 1, 78 bytes





            a,b=input()
            while a:
            b=b[1:]+b[:1];a=[a[1:],a+b[:1]*a[0]][b[0]]
            if a:print a


            Try it online!






            share|improve this answer











            $endgroup$













            • $begingroup$
              Nice! A niggle: for data '100', program '0', this will print the empty string once: but rule c says "If the data is not empty now, output the data."
              $endgroup$
              – Chas Brown
              6 hours ago










            • $begingroup$
              @ChasBrown Small typo, I'm waiting for clarification from the OP if trailing newlines are ok
              $endgroup$
              – Embodiment of Ignorance
              4 hours ago












            • $begingroup$
              @ChasBrown The OP says multiple trailing newlines are allowed, see here
              $endgroup$
              – Embodiment of Ignorance
              4 hours ago












            • $begingroup$
              But after switching to arrays of 1's and 0s, now you're printing an empty array [] instead of a newline on e.g., data [1,0,0] , program [0].
              $endgroup$
              – Chas Brown
              2 hours ago












            • $begingroup$
              python 1? python 2 doesn't work?
              $endgroup$
              – ASCII-only
              1 hour ago












            Your Answer





            StackExchange.ifUsing("editor", function () {
            return StackExchange.using("mathjaxEditing", function () {
            StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
            StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
            });
            });
            }, "mathjax-editing");

            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "200"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodegolf.stackexchange.com%2fquestions%2f182788%2fsimulate-bitwise-cyclic-tag%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            7 Answers
            7






            active

            oldest

            votes








            7 Answers
            7






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            1












            $begingroup$

            Haskell, 77 71 bytes



            f@(d:e)#(p:q)=f:[[e,e],[f,f++[q!!0]]]!!p!!d#q
            _#_=[]
            a!b=tail$a#cycle b


            Try it online!






            share|improve this answer











            $endgroup$


















              1












              $begingroup$

              Haskell, 77 71 bytes



              f@(d:e)#(p:q)=f:[[e,e],[f,f++[q!!0]]]!!p!!d#q
              _#_=[]
              a!b=tail$a#cycle b


              Try it online!






              share|improve this answer











              $endgroup$
















                1












                1








                1





                $begingroup$

                Haskell, 77 71 bytes



                f@(d:e)#(p:q)=f:[[e,e],[f,f++[q!!0]]]!!p!!d#q
                _#_=[]
                a!b=tail$a#cycle b


                Try it online!






                share|improve this answer











                $endgroup$



                Haskell, 77 71 bytes



                f@(d:e)#(p:q)=f:[[e,e],[f,f++[q!!0]]]!!p!!d#q
                _#_=[]
                a!b=tail$a#cycle b


                Try it online!







                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited 3 hours ago

























                answered 4 hours ago









                niminimi

                32.6k32489




                32.6k32489























                    1












                    $begingroup$


                    C# (Visual C# Interactive Compiler), 82 bytes





                    m=>n=>{for(int i=0;m!="";Print(m=n[i++]<49?m.Substring(1):m[0]>48?m+n[i]:m))n+=n;}


                    Try it online!






                    share|improve this answer











                    $endgroup$













                    • $begingroup$
                      what are the significance of the 48 and 49, out of curiosity?
                      $endgroup$
                      – Jonah
                      6 hours ago






                    • 1




                      $begingroup$
                      @Jonah 48 is the ASCII value of 0, and 49 is the ASCII value of 1
                      $endgroup$
                      – Embodiment of Ignorance
                      6 hours ago












                    • $begingroup$
                      shouldn't you use 0 and 1 instead here :P
                      $endgroup$
                      – ASCII-only
                      57 mins ago










                    • $begingroup$
                      @ASCII-only I'm using a string, not an array.
                      $endgroup$
                      – Embodiment of Ignorance
                      56 mins ago










                    • $begingroup$
                      @EmbodimentofIgnorance why not use a List and Skip, or something like that
                      $endgroup$
                      – ASCII-only
                      55 mins ago


















                    1












                    $begingroup$


                    C# (Visual C# Interactive Compiler), 82 bytes





                    m=>n=>{for(int i=0;m!="";Print(m=n[i++]<49?m.Substring(1):m[0]>48?m+n[i]:m))n+=n;}


                    Try it online!






                    share|improve this answer











                    $endgroup$













                    • $begingroup$
                      what are the significance of the 48 and 49, out of curiosity?
                      $endgroup$
                      – Jonah
                      6 hours ago






                    • 1




                      $begingroup$
                      @Jonah 48 is the ASCII value of 0, and 49 is the ASCII value of 1
                      $endgroup$
                      – Embodiment of Ignorance
                      6 hours ago












                    • $begingroup$
                      shouldn't you use 0 and 1 instead here :P
                      $endgroup$
                      – ASCII-only
                      57 mins ago










                    • $begingroup$
                      @ASCII-only I'm using a string, not an array.
                      $endgroup$
                      – Embodiment of Ignorance
                      56 mins ago










                    • $begingroup$
                      @EmbodimentofIgnorance why not use a List and Skip, or something like that
                      $endgroup$
                      – ASCII-only
                      55 mins ago
















                    1












                    1








                    1





                    $begingroup$


                    C# (Visual C# Interactive Compiler), 82 bytes





                    m=>n=>{for(int i=0;m!="";Print(m=n[i++]<49?m.Substring(1):m[0]>48?m+n[i]:m))n+=n;}


                    Try it online!






                    share|improve this answer











                    $endgroup$




                    C# (Visual C# Interactive Compiler), 82 bytes





                    m=>n=>{for(int i=0;m!="";Print(m=n[i++]<49?m.Substring(1):m[0]>48?m+n[i]:m))n+=n;}


                    Try it online!







                    share|improve this answer














                    share|improve this answer



                    share|improve this answer








                    edited 3 hours ago

























                    answered 7 hours ago









                    Embodiment of IgnoranceEmbodiment of Ignorance

                    2,828127




                    2,828127












                    • $begingroup$
                      what are the significance of the 48 and 49, out of curiosity?
                      $endgroup$
                      – Jonah
                      6 hours ago






                    • 1




                      $begingroup$
                      @Jonah 48 is the ASCII value of 0, and 49 is the ASCII value of 1
                      $endgroup$
                      – Embodiment of Ignorance
                      6 hours ago












                    • $begingroup$
                      shouldn't you use 0 and 1 instead here :P
                      $endgroup$
                      – ASCII-only
                      57 mins ago










                    • $begingroup$
                      @ASCII-only I'm using a string, not an array.
                      $endgroup$
                      – Embodiment of Ignorance
                      56 mins ago










                    • $begingroup$
                      @EmbodimentofIgnorance why not use a List and Skip, or something like that
                      $endgroup$
                      – ASCII-only
                      55 mins ago




















                    • $begingroup$
                      what are the significance of the 48 and 49, out of curiosity?
                      $endgroup$
                      – Jonah
                      6 hours ago






                    • 1




                      $begingroup$
                      @Jonah 48 is the ASCII value of 0, and 49 is the ASCII value of 1
                      $endgroup$
                      – Embodiment of Ignorance
                      6 hours ago












                    • $begingroup$
                      shouldn't you use 0 and 1 instead here :P
                      $endgroup$
                      – ASCII-only
                      57 mins ago










                    • $begingroup$
                      @ASCII-only I'm using a string, not an array.
                      $endgroup$
                      – Embodiment of Ignorance
                      56 mins ago










                    • $begingroup$
                      @EmbodimentofIgnorance why not use a List and Skip, or something like that
                      $endgroup$
                      – ASCII-only
                      55 mins ago


















                    $begingroup$
                    what are the significance of the 48 and 49, out of curiosity?
                    $endgroup$
                    – Jonah
                    6 hours ago




                    $begingroup$
                    what are the significance of the 48 and 49, out of curiosity?
                    $endgroup$
                    – Jonah
                    6 hours ago




                    1




                    1




                    $begingroup$
                    @Jonah 48 is the ASCII value of 0, and 49 is the ASCII value of 1
                    $endgroup$
                    – Embodiment of Ignorance
                    6 hours ago






                    $begingroup$
                    @Jonah 48 is the ASCII value of 0, and 49 is the ASCII value of 1
                    $endgroup$
                    – Embodiment of Ignorance
                    6 hours ago














                    $begingroup$
                    shouldn't you use 0 and 1 instead here :P
                    $endgroup$
                    – ASCII-only
                    57 mins ago




                    $begingroup$
                    shouldn't you use 0 and 1 instead here :P
                    $endgroup$
                    – ASCII-only
                    57 mins ago












                    $begingroup$
                    @ASCII-only I'm using a string, not an array.
                    $endgroup$
                    – Embodiment of Ignorance
                    56 mins ago




                    $begingroup$
                    @ASCII-only I'm using a string, not an array.
                    $endgroup$
                    – Embodiment of Ignorance
                    56 mins ago












                    $begingroup$
                    @EmbodimentofIgnorance why not use a List and Skip, or something like that
                    $endgroup$
                    – ASCII-only
                    55 mins ago






                    $begingroup$
                    @EmbodimentofIgnorance why not use a List and Skip, or something like that
                    $endgroup$
                    – ASCII-only
                    55 mins ago













                    0












                    $begingroup$


                    J, 65 bytes



                    (([:(][echo)(}.@[)`([,{.@[#1{],])@.({.@]));1|.])&>/^:(0<0#@{>)^:5


                    Try it online!



                    I may golf this further later. Note the 5 at the end would be infinity _ in the actual program, but I've left it there to make running the non-halting examples easier.






                    share|improve this answer











                    $endgroup$


















                      0












                      $begingroup$


                      J, 65 bytes



                      (([:(][echo)(}.@[)`([,{.@[#1{],])@.({.@]));1|.])&>/^:(0<0#@{>)^:5


                      Try it online!



                      I may golf this further later. Note the 5 at the end would be infinity _ in the actual program, but I've left it there to make running the non-halting examples easier.






                      share|improve this answer











                      $endgroup$
















                        0












                        0








                        0





                        $begingroup$


                        J, 65 bytes



                        (([:(][echo)(}.@[)`([,{.@[#1{],])@.({.@]));1|.])&>/^:(0<0#@{>)^:5


                        Try it online!



                        I may golf this further later. Note the 5 at the end would be infinity _ in the actual program, but I've left it there to make running the non-halting examples easier.






                        share|improve this answer











                        $endgroup$




                        J, 65 bytes



                        (([:(][echo)(}.@[)`([,{.@[#1{],])@.({.@]));1|.])&>/^:(0<0#@{>)^:5


                        Try it online!



                        I may golf this further later. Note the 5 at the end would be infinity _ in the actual program, but I've left it there to make running the non-halting examples easier.







                        share|improve this answer














                        share|improve this answer



                        share|improve this answer








                        edited 6 hours ago

























                        answered 7 hours ago









                        JonahJonah

                        2,5911017




                        2,5911017























                            0












                            $begingroup$


                            Python 2, 96 82 bytes





                            def g(d,p):
                            while d:
                            c=p[0];p=p[1:]+[c];d=[d[1:],d+[p[0]]*d[0]][c]
                            if d:yield d


                            Try it online!



                            Stealing a bit from Emodiment of Ignorance's answer...



                            A generator which uses lists of 1's and 0's for input / output.






                            share|improve this answer











                            $endgroup$


















                              0












                              $begingroup$


                              Python 2, 96 82 bytes





                              def g(d,p):
                              while d:
                              c=p[0];p=p[1:]+[c];d=[d[1:],d+[p[0]]*d[0]][c]
                              if d:yield d


                              Try it online!



                              Stealing a bit from Emodiment of Ignorance's answer...



                              A generator which uses lists of 1's and 0's for input / output.






                              share|improve this answer











                              $endgroup$
















                                0












                                0








                                0





                                $begingroup$


                                Python 2, 96 82 bytes





                                def g(d,p):
                                while d:
                                c=p[0];p=p[1:]+[c];d=[d[1:],d+[p[0]]*d[0]][c]
                                if d:yield d


                                Try it online!



                                Stealing a bit from Emodiment of Ignorance's answer...



                                A generator which uses lists of 1's and 0's for input / output.






                                share|improve this answer











                                $endgroup$




                                Python 2, 96 82 bytes





                                def g(d,p):
                                while d:
                                c=p[0];p=p[1:]+[c];d=[d[1:],d+[p[0]]*d[0]][c]
                                if d:yield d


                                Try it online!



                                Stealing a bit from Emodiment of Ignorance's answer...



                                A generator which uses lists of 1's and 0's for input / output.







                                share|improve this answer














                                share|improve this answer



                                share|improve this answer








                                edited 6 hours ago

























                                answered 6 hours ago









                                Chas BrownChas Brown

                                5,1991523




                                5,1991523























                                    0












                                    $begingroup$


                                    Jelly, 40 bytes



                                    ;€Ø2œịxØ1œị$Ʋ$Ḋ€2,1œị$?1¦ṙ€1$2¦µ⁺1ịGṄƲ¿Ḣ


                                    Try it online!



                                    I’ve assumed trailing newlines are ok. I’ve also gone with a list of two lists of zeros and ones as input, and output to stdout.






                                    share|improve this answer









                                    $endgroup$


















                                      0












                                      $begingroup$


                                      Jelly, 40 bytes



                                      ;€Ø2œịxØ1œị$Ʋ$Ḋ€2,1œị$?1¦ṙ€1$2¦µ⁺1ịGṄƲ¿Ḣ


                                      Try it online!



                                      I’ve assumed trailing newlines are ok. I’ve also gone with a list of two lists of zeros and ones as input, and output to stdout.






                                      share|improve this answer









                                      $endgroup$
















                                        0












                                        0








                                        0





                                        $begingroup$


                                        Jelly, 40 bytes



                                        ;€Ø2œịxØ1œị$Ʋ$Ḋ€2,1œị$?1¦ṙ€1$2¦µ⁺1ịGṄƲ¿Ḣ


                                        Try it online!



                                        I’ve assumed trailing newlines are ok. I’ve also gone with a list of two lists of zeros and ones as input, and output to stdout.






                                        share|improve this answer









                                        $endgroup$




                                        Jelly, 40 bytes



                                        ;€Ø2œịxØ1œị$Ʋ$Ḋ€2,1œị$?1¦ṙ€1$2¦µ⁺1ịGṄƲ¿Ḣ


                                        Try it online!



                                        I’ve assumed trailing newlines are ok. I’ve also gone with a list of two lists of zeros and ones as input, and output to stdout.







                                        share|improve this answer












                                        share|improve this answer



                                        share|improve this answer










                                        answered 4 hours ago









                                        Nick KennedyNick Kennedy

                                        1,32649




                                        1,32649























                                            0












                                            $begingroup$


                                            Python 3, 74 bytes





                                            def f(d,p):
                                            while d:c,*p=p+p[:1];d=(d[1:],d+p[:1]*d[0])[c];d and print(d)


                                            Try it online!



                                            Arguments: d: data, p: program.






                                            share|improve this answer









                                            $endgroup$


















                                              0












                                              $begingroup$


                                              Python 3, 74 bytes





                                              def f(d,p):
                                              while d:c,*p=p+p[:1];d=(d[1:],d+p[:1]*d[0])[c];d and print(d)


                                              Try it online!



                                              Arguments: d: data, p: program.






                                              share|improve this answer









                                              $endgroup$
















                                                0












                                                0








                                                0





                                                $begingroup$


                                                Python 3, 74 bytes





                                                def f(d,p):
                                                while d:c,*p=p+p[:1];d=(d[1:],d+p[:1]*d[0])[c];d and print(d)


                                                Try it online!



                                                Arguments: d: data, p: program.






                                                share|improve this answer









                                                $endgroup$




                                                Python 3, 74 bytes





                                                def f(d,p):
                                                while d:c,*p=p+p[:1];d=(d[1:],d+p[:1]*d[0])[c];d and print(d)


                                                Try it online!



                                                Arguments: d: data, p: program.







                                                share|improve this answer












                                                share|improve this answer



                                                share|improve this answer










                                                answered 4 hours ago









                                                Erik the OutgolferErik the Outgolfer

                                                33k429106




                                                33k429106























                                                    0












                                                    $begingroup$


                                                    Python 1, 78 bytes





                                                    a,b=input()
                                                    while a:
                                                    b=b[1:]+b[:1];a=[a[1:],a+b[:1]*a[0]][b[0]]
                                                    if a:print a


                                                    Try it online!






                                                    share|improve this answer











                                                    $endgroup$













                                                    • $begingroup$
                                                      Nice! A niggle: for data '100', program '0', this will print the empty string once: but rule c says "If the data is not empty now, output the data."
                                                      $endgroup$
                                                      – Chas Brown
                                                      6 hours ago










                                                    • $begingroup$
                                                      @ChasBrown Small typo, I'm waiting for clarification from the OP if trailing newlines are ok
                                                      $endgroup$
                                                      – Embodiment of Ignorance
                                                      4 hours ago












                                                    • $begingroup$
                                                      @ChasBrown The OP says multiple trailing newlines are allowed, see here
                                                      $endgroup$
                                                      – Embodiment of Ignorance
                                                      4 hours ago












                                                    • $begingroup$
                                                      But after switching to arrays of 1's and 0s, now you're printing an empty array [] instead of a newline on e.g., data [1,0,0] , program [0].
                                                      $endgroup$
                                                      – Chas Brown
                                                      2 hours ago












                                                    • $begingroup$
                                                      python 1? python 2 doesn't work?
                                                      $endgroup$
                                                      – ASCII-only
                                                      1 hour ago
















                                                    0












                                                    $begingroup$


                                                    Python 1, 78 bytes





                                                    a,b=input()
                                                    while a:
                                                    b=b[1:]+b[:1];a=[a[1:],a+b[:1]*a[0]][b[0]]
                                                    if a:print a


                                                    Try it online!






                                                    share|improve this answer











                                                    $endgroup$













                                                    • $begingroup$
                                                      Nice! A niggle: for data '100', program '0', this will print the empty string once: but rule c says "If the data is not empty now, output the data."
                                                      $endgroup$
                                                      – Chas Brown
                                                      6 hours ago










                                                    • $begingroup$
                                                      @ChasBrown Small typo, I'm waiting for clarification from the OP if trailing newlines are ok
                                                      $endgroup$
                                                      – Embodiment of Ignorance
                                                      4 hours ago












                                                    • $begingroup$
                                                      @ChasBrown The OP says multiple trailing newlines are allowed, see here
                                                      $endgroup$
                                                      – Embodiment of Ignorance
                                                      4 hours ago












                                                    • $begingroup$
                                                      But after switching to arrays of 1's and 0s, now you're printing an empty array [] instead of a newline on e.g., data [1,0,0] , program [0].
                                                      $endgroup$
                                                      – Chas Brown
                                                      2 hours ago












                                                    • $begingroup$
                                                      python 1? python 2 doesn't work?
                                                      $endgroup$
                                                      – ASCII-only
                                                      1 hour ago














                                                    0












                                                    0








                                                    0





                                                    $begingroup$


                                                    Python 1, 78 bytes





                                                    a,b=input()
                                                    while a:
                                                    b=b[1:]+b[:1];a=[a[1:],a+b[:1]*a[0]][b[0]]
                                                    if a:print a


                                                    Try it online!






                                                    share|improve this answer











                                                    $endgroup$




                                                    Python 1, 78 bytes





                                                    a,b=input()
                                                    while a:
                                                    b=b[1:]+b[:1];a=[a[1:],a+b[:1]*a[0]][b[0]]
                                                    if a:print a


                                                    Try it online!







                                                    share|improve this answer














                                                    share|improve this answer



                                                    share|improve this answer








                                                    edited 1 hour ago

























                                                    answered 6 hours ago









                                                    Embodiment of IgnoranceEmbodiment of Ignorance

                                                    2,828127




                                                    2,828127












                                                    • $begingroup$
                                                      Nice! A niggle: for data '100', program '0', this will print the empty string once: but rule c says "If the data is not empty now, output the data."
                                                      $endgroup$
                                                      – Chas Brown
                                                      6 hours ago










                                                    • $begingroup$
                                                      @ChasBrown Small typo, I'm waiting for clarification from the OP if trailing newlines are ok
                                                      $endgroup$
                                                      – Embodiment of Ignorance
                                                      4 hours ago












                                                    • $begingroup$
                                                      @ChasBrown The OP says multiple trailing newlines are allowed, see here
                                                      $endgroup$
                                                      – Embodiment of Ignorance
                                                      4 hours ago












                                                    • $begingroup$
                                                      But after switching to arrays of 1's and 0s, now you're printing an empty array [] instead of a newline on e.g., data [1,0,0] , program [0].
                                                      $endgroup$
                                                      – Chas Brown
                                                      2 hours ago












                                                    • $begingroup$
                                                      python 1? python 2 doesn't work?
                                                      $endgroup$
                                                      – ASCII-only
                                                      1 hour ago


















                                                    • $begingroup$
                                                      Nice! A niggle: for data '100', program '0', this will print the empty string once: but rule c says "If the data is not empty now, output the data."
                                                      $endgroup$
                                                      – Chas Brown
                                                      6 hours ago










                                                    • $begingroup$
                                                      @ChasBrown Small typo, I'm waiting for clarification from the OP if trailing newlines are ok
                                                      $endgroup$
                                                      – Embodiment of Ignorance
                                                      4 hours ago












                                                    • $begingroup$
                                                      @ChasBrown The OP says multiple trailing newlines are allowed, see here
                                                      $endgroup$
                                                      – Embodiment of Ignorance
                                                      4 hours ago












                                                    • $begingroup$
                                                      But after switching to arrays of 1's and 0s, now you're printing an empty array [] instead of a newline on e.g., data [1,0,0] , program [0].
                                                      $endgroup$
                                                      – Chas Brown
                                                      2 hours ago












                                                    • $begingroup$
                                                      python 1? python 2 doesn't work?
                                                      $endgroup$
                                                      – ASCII-only
                                                      1 hour ago
















                                                    $begingroup$
                                                    Nice! A niggle: for data '100', program '0', this will print the empty string once: but rule c says "If the data is not empty now, output the data."
                                                    $endgroup$
                                                    – Chas Brown
                                                    6 hours ago




                                                    $begingroup$
                                                    Nice! A niggle: for data '100', program '0', this will print the empty string once: but rule c says "If the data is not empty now, output the data."
                                                    $endgroup$
                                                    – Chas Brown
                                                    6 hours ago












                                                    $begingroup$
                                                    @ChasBrown Small typo, I'm waiting for clarification from the OP if trailing newlines are ok
                                                    $endgroup$
                                                    – Embodiment of Ignorance
                                                    4 hours ago






                                                    $begingroup$
                                                    @ChasBrown Small typo, I'm waiting for clarification from the OP if trailing newlines are ok
                                                    $endgroup$
                                                    – Embodiment of Ignorance
                                                    4 hours ago














                                                    $begingroup$
                                                    @ChasBrown The OP says multiple trailing newlines are allowed, see here
                                                    $endgroup$
                                                    – Embodiment of Ignorance
                                                    4 hours ago






                                                    $begingroup$
                                                    @ChasBrown The OP says multiple trailing newlines are allowed, see here
                                                    $endgroup$
                                                    – Embodiment of Ignorance
                                                    4 hours ago














                                                    $begingroup$
                                                    But after switching to arrays of 1's and 0s, now you're printing an empty array [] instead of a newline on e.g., data [1,0,0] , program [0].
                                                    $endgroup$
                                                    – Chas Brown
                                                    2 hours ago






                                                    $begingroup$
                                                    But after switching to arrays of 1's and 0s, now you're printing an empty array [] instead of a newline on e.g., data [1,0,0] , program [0].
                                                    $endgroup$
                                                    – Chas Brown
                                                    2 hours ago














                                                    $begingroup$
                                                    python 1? python 2 doesn't work?
                                                    $endgroup$
                                                    – ASCII-only
                                                    1 hour ago




                                                    $begingroup$
                                                    python 1? python 2 doesn't work?
                                                    $endgroup$
                                                    – ASCII-only
                                                    1 hour ago


















                                                    draft saved

                                                    draft discarded




















































                                                    If this is an answer to a challenge…




                                                    • …Be sure to follow the challenge specification. However, please refrain from exploiting obvious loopholes. Answers abusing any of the standard loopholes are considered invalid. If you think a specification is unclear or underspecified, comment on the question instead.


                                                    • …Try to optimize your score. For instance, answers to code-golf challenges should attempt to be as short as possible. You can always include a readable version of the code in addition to the competitive one.
                                                      Explanations of your answer make it more interesting to read and are very much encouraged.


                                                    • …Include a short header which indicates the language(s) of your code and its score, as defined by the challenge.



                                                    More generally…




                                                    • …Please make sure to answer the question and provide sufficient detail.


                                                    • …Avoid asking for help, clarification or responding to other answers (use comments instead).





                                                    draft saved


                                                    draft discarded














                                                    StackExchange.ready(
                                                    function () {
                                                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodegolf.stackexchange.com%2fquestions%2f182788%2fsimulate-bitwise-cyclic-tag%23new-answer', 'question_page');
                                                    }
                                                    );

                                                    Post as a guest















                                                    Required, but never shown





















































                                                    Required, but never shown














                                                    Required, but never shown












                                                    Required, but never shown







                                                    Required, but never shown

































                                                    Required, but never shown














                                                    Required, but never shown












                                                    Required, but never shown







                                                    Required, but never shown







                                                    Popular posts from this blog

                                                    Gersau Kjelder | Navigasjonsmeny46°59′0″N 8°31′0″E46°59′0″N...

                                                    Hestehale Innhaldsliste Hestehale på kvinner | Hestehale på menn | Galleri | Sjå òg |...

                                                    What is the “three and three hundred thousand syndrome”?Who wrote the book Arena?What five creatures were...