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

What makes Graph invariants so useful/important?

What defenses are there against being summoned by the Gate spell?

I probably found a bug with the sudo apt install function

How old can references or sources in a thesis be?

Validation accuracy vs Testing accuracy

Can I make popcorn with any corn?

I see my dog run

Work Breakdown with Tikz

Is it possible to make sharp wind that can cut stuff from afar?

Are there any consumables that function as addictive (psychedelic) drugs?

Email Account under attack (really) - anything I can do?

How do you conduct xenoanthropology after first contact?

Can a German sentence have two subjects?

How to report a triplet of septets in NMR tabulation?

What is the offset in a seaplane's hull?

DOS, create pipe for stdin/stdout of command.com(or 4dos.com) in C or Batch?

Is there a familial term for apples and pears?

Why CLRS example on residual networks does not follows its formula?

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

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

How to add power-LED to my small amplifier?

What would happen to a modern skyscraper if it rains micro blackholes?

What is the command to reset a PC without deleting any files

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



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
    7 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
    7 hours ago










  • $begingroup$
    @Jonah Oh, missed that
    $endgroup$
    – MilkyWay90
    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
















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
    7 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
    7 hours ago










  • $begingroup$
    @Jonah Oh, missed that
    $endgroup$
    – MilkyWay90
    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














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 3 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
    7 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
    7 hours ago










  • $begingroup$
    @Jonah Oh, missed that
    $endgroup$
    – MilkyWay90
    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


















  • $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
    7 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
    7 hours ago










  • $begingroup$
    @Jonah Oh, missed that
    $endgroup$
    – MilkyWay90
    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
















$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
7 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
7 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
7 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
7 hours ago












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




$begingroup$
@Jonah Oh, missed that
$endgroup$
– MilkyWay90
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




$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
      36 mins ago










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










    • $begingroup$
      @EmbodimentofIgnorance why not use a List and Skip, or something like that
      $endgroup$
      – ASCII-only
      33 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
              3 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
              1 hour 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
                      36 mins ago










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










                    • $begingroup$
                      @EmbodimentofIgnorance why not use a List and Skip, or something like that
                      $endgroup$
                      – ASCII-only
                      33 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
                      36 mins ago










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










                    • $begingroup$
                      @EmbodimentofIgnorance why not use a List and Skip, or something like that
                      $endgroup$
                      – ASCII-only
                      33 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 2 hours ago

























                    answered 6 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
                      36 mins ago










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










                    • $begingroup$
                      @EmbodimentofIgnorance why not use a List and Skip, or something like that
                      $endgroup$
                      – ASCII-only
                      33 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
                      36 mins ago










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










                    • $begingroup$
                      @EmbodimentofIgnorance why not use a List and Skip, or something like that
                      $endgroup$
                      – ASCII-only
                      33 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
                    36 mins ago




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












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




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












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






                    $begingroup$
                    @EmbodimentofIgnorance why not use a List and Skip, or something like that
                    $endgroup$
                    – ASCII-only
                    33 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 6 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 5 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 3 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
                                                      3 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
                                                      1 hour 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
                                                      3 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
                                                      1 hour 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
                                                      3 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
                                                      1 hour 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
                                                      3 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
                                                      1 hour 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
                                                    3 hours ago






                                                    $begingroup$
                                                    @ChasBrown The OP says multiple trailing newlines are allowed, see here
                                                    $endgroup$
                                                    – Embodiment of Ignorance
                                                    3 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
                                                    1 hour 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
                                                    1 hour 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

                                                    As a Security Precaution, the user account has been locked The Next CEO of Stack OverflowMS...

                                                    Список ссавців Італії Природоохоронні статуси | Список |...

                                                    Українські прізвища Зміст Історичні відомості |...