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

Extreme, but not acceptable situation and I can't start the work tomorrow morning

How old can references or sources in a thesis be?

If Manufacturer spice model and Datasheet give different values which should I use?

How can I fix this gap between bookcases I made?

Pronouncing Dictionary.com's W.O.D "vade mecum" in English

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

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

What would the Romans have called "sorcery"?

Why did the Germans forbid the possession of pet pigeons in Rostov-on-Don in 1941?

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

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

Can I interfere when another PC is about to be attacked?

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

What do you call something that goes against the spirit of the law, but is legal when interpreting the law to the letter?

Circuitry of TV splitters

Why are 150k or 200k jobs considered good when there are 300k+ births a month?

Are tax years 2016 & 2017 back taxes deductible for tax year 2018?

"which" command doesn't work / path of Safari?

Draw simple lines in Inkscape

Why is this code 6.5x slower with optimizations enabled?

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

Copycat chess is back

Shell script can be run only with sh command

How to make payment on the internet without leaving a money trail?



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
      39 mins ago










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










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










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










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










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










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










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










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










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










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




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












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




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












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






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

                                                    “%fieldName is a required field.”, in Magento2 REST API Call for GET Method Type The Next...

                                                    How to change City field to a dropdown in Checkout step Magento 2Magento 2 : How to change UI field(s)...

                                                    夢乃愛華...