The first, the last, and everything between











up vote
31
down vote

favorite
4












Given two integers, output the two integers, and then the range between them (excluding both).



The order of the range must be the same as the input.



Examples:



 Input        Output
0, 5 -> [0, 5, 1, 2, 3, 4]
-3, 8 -> [-3, 8, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7]
4, 4 -> [4, 4]
4, 5 -> [4, 5]
8, 2 -> [8, 2, 7, 6, 5, 4, 3]
-2, -7 -> [-2, -7, -3, -4, -5, -6]









share|improve this question
























  • I guess we can't take the inputs in pre-ordered order?
    – Kevin Cruijssen
    Nov 8 at 9:55










  • @KevinCruijssen, no, the output order depends on the input order
    – TFeld
    Nov 8 at 9:58










  • @StewieGriffin, the output order has to be the same as the input
    – TFeld
    Nov 8 at 9:58












  • Is this output format acceptable? Note the newline
    – Luis Mendo
    Nov 8 at 10:48






  • 2




    @KevinCruijssen Any reasonable I/O is acceptable.
    – TFeld
    Nov 8 at 13:08















up vote
31
down vote

favorite
4












Given two integers, output the two integers, and then the range between them (excluding both).



The order of the range must be the same as the input.



Examples:



 Input        Output
0, 5 -> [0, 5, 1, 2, 3, 4]
-3, 8 -> [-3, 8, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7]
4, 4 -> [4, 4]
4, 5 -> [4, 5]
8, 2 -> [8, 2, 7, 6, 5, 4, 3]
-2, -7 -> [-2, -7, -3, -4, -5, -6]









share|improve this question
























  • I guess we can't take the inputs in pre-ordered order?
    – Kevin Cruijssen
    Nov 8 at 9:55










  • @KevinCruijssen, no, the output order depends on the input order
    – TFeld
    Nov 8 at 9:58










  • @StewieGriffin, the output order has to be the same as the input
    – TFeld
    Nov 8 at 9:58












  • Is this output format acceptable? Note the newline
    – Luis Mendo
    Nov 8 at 10:48






  • 2




    @KevinCruijssen Any reasonable I/O is acceptable.
    – TFeld
    Nov 8 at 13:08













up vote
31
down vote

favorite
4









up vote
31
down vote

favorite
4






4





Given two integers, output the two integers, and then the range between them (excluding both).



The order of the range must be the same as the input.



Examples:



 Input        Output
0, 5 -> [0, 5, 1, 2, 3, 4]
-3, 8 -> [-3, 8, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7]
4, 4 -> [4, 4]
4, 5 -> [4, 5]
8, 2 -> [8, 2, 7, 6, 5, 4, 3]
-2, -7 -> [-2, -7, -3, -4, -5, -6]









share|improve this question















Given two integers, output the two integers, and then the range between them (excluding both).



The order of the range must be the same as the input.



Examples:



 Input        Output
0, 5 -> [0, 5, 1, 2, 3, 4]
-3, 8 -> [-3, 8, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7]
4, 4 -> [4, 4]
4, 5 -> [4, 5]
8, 2 -> [8, 2, 7, 6, 5, 4, 3]
-2, -7 -> [-2, -7, -3, -4, -5, -6]






code-golf






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 9 at 8:43

























asked Nov 8 at 8:53









TFeld

13.3k21039




13.3k21039












  • I guess we can't take the inputs in pre-ordered order?
    – Kevin Cruijssen
    Nov 8 at 9:55










  • @KevinCruijssen, no, the output order depends on the input order
    – TFeld
    Nov 8 at 9:58










  • @StewieGriffin, the output order has to be the same as the input
    – TFeld
    Nov 8 at 9:58












  • Is this output format acceptable? Note the newline
    – Luis Mendo
    Nov 8 at 10:48






  • 2




    @KevinCruijssen Any reasonable I/O is acceptable.
    – TFeld
    Nov 8 at 13:08


















  • I guess we can't take the inputs in pre-ordered order?
    – Kevin Cruijssen
    Nov 8 at 9:55










  • @KevinCruijssen, no, the output order depends on the input order
    – TFeld
    Nov 8 at 9:58










  • @StewieGriffin, the output order has to be the same as the input
    – TFeld
    Nov 8 at 9:58












  • Is this output format acceptable? Note the newline
    – Luis Mendo
    Nov 8 at 10:48






  • 2




    @KevinCruijssen Any reasonable I/O is acceptable.
    – TFeld
    Nov 8 at 13:08
















I guess we can't take the inputs in pre-ordered order?
– Kevin Cruijssen
Nov 8 at 9:55




I guess we can't take the inputs in pre-ordered order?
– Kevin Cruijssen
Nov 8 at 9:55












@KevinCruijssen, no, the output order depends on the input order
– TFeld
Nov 8 at 9:58




@KevinCruijssen, no, the output order depends on the input order
– TFeld
Nov 8 at 9:58












@StewieGriffin, the output order has to be the same as the input
– TFeld
Nov 8 at 9:58






@StewieGriffin, the output order has to be the same as the input
– TFeld
Nov 8 at 9:58














Is this output format acceptable? Note the newline
– Luis Mendo
Nov 8 at 10:48




Is this output format acceptable? Note the newline
– Luis Mendo
Nov 8 at 10:48




2




2




@KevinCruijssen Any reasonable I/O is acceptable.
– TFeld
Nov 8 at 13:08




@KevinCruijssen Any reasonable I/O is acceptable.
– TFeld
Nov 8 at 13:08










51 Answers
51






active

oldest

votes













1 2
next











up vote
14
down vote














R, 39 33 30 bytes





c(a<-scan(),setdiff(a:a[2],a))


Try it online!



Thanks for saved bytes to user2390246 and J.Doe.






share|improve this answer























  • You could save a few bytes by taking the input as a vector rather than as two separate integers.
    – user2390246
    Nov 8 at 11:47










  • Yeah, that's reasonable, and it actually then becomes even shorter as a full program rather than function.
    – Kirill L.
    Nov 8 at 12:04










  • You can abuse the fact the : operator uses the first element of both args for 30 bytes
    – J.Doe
    Nov 8 at 12:20




















up vote
12
down vote














05AB1E, 4 bytes



Ÿ¦¨«


Try it online!



Explanation



    Ÿ      # inclusive range [a ... b]
¦¨ # remove the first and last element
« # append to input





share|improve this answer




























    up vote
    11
    down vote














    Python 3, 52 48 47 42 bytes





    lambda a,b:[a,b,*range(a,b,(a<b)*2-1)[1:]]


    Try it online!





    Combined former implementations.






    share|improve this answer










    New contributor




    cobaltp is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.














    • 2




      You can remove the space at or-1 to save a byte.
      – Kevin Cruijssen
      Nov 8 at 9:56


















    up vote
    9
    down vote














    Python 2 (Cython), 36 35 bytes





    lambda x:x+range(*x,-cmp(*x)|1)[1:]


    Thanks to @nwellnhof for golfing off 1 byte!



    Try it online!






    Python 2, 37 bytes





    lambda x:x+range(*x+[-cmp(*x)|1])[1:]


    Thanks to @JonasAusevicius for the port to CPython!



    Try it online!






    share|improve this answer



















    • 2




      This can be applied to standard Python 2 at 37 bytes, making it the shortest answer yet: lambda x:x+range(*x+[-cmp(*x)|1])[1:]. Nice solution
      – Jonas Ausevicius
      Nov 8 at 14:17


















    up vote
    8
    down vote














    Perl 6, 26 22 bytes





    {|@_,|[...^](@_).skip}


    Try it online!



    Explanation



    {                    }
    |@_, # Slip args a,b into result
    [...^](@_) # Reduce args a,b with ...^ operator, same as a...^b
    .skip # Skip first element
    | # Slip into result





    share|improve this answer






























      up vote
      7
      down vote














      Python 2, 40 bytes





      lambda x,y:[x,y]+range(x,y,-(y<x)|1)[1:]


      Try it online!






      share|improve this answer





















      • Really like -(y<x)|1. very cool but I can't work out why it works! Any chance you can explain it?
        – ElPedro
        Nov 8 at 19:06






      • 2




        @ElPedro Basically, y<x checks if y is strictly less than x, and returns True if it is, False otherwise. After that, unary - is applied to it, which converts True to -1 and False to 0. The last step is to bitwise OR this number with 1. This obviously leaves 1 (0b1) unaffected, and also leaves -1 (-0b1) unaffected (the sign bit of -1 is set, so it's kept as such). However, it does convert 0 to 1, so that range doesn't complain about me using a step of 0.
        – Erik the Outgolfer
        Nov 8 at 19:32










      • That is seriously cool and very clever. If I could upvote twice I would. Many thanks for the explanation.
        – ElPedro
        Nov 8 at 20:27




















      up vote
      6
      down vote













      Python 3, 64 62 51 bytes



      lambda a,b:[a,b]+[*range(a+1,b)]+[*range(a-1,b,-1)]



      Try it online!



      Python 2, 58 45 bytes



      lambda a,b:[a,b]+range(a+1,b)+range(a-1,b,-1)



      Try it online!






      share|improve this answer










      New contributor




      Jonas Ausevicius is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.














      • 2




        Because an empty list is falsey, you can remove the a<=b and from both answers
        – TFeld
        Nov 8 at 10:03










      • You could also use + instead of or
        – TFeld
        Nov 8 at 10:13










      • @TFeld thank you
        – Jonas Ausevicius
        Nov 8 at 10:24


















      up vote
      6
      down vote














      Python 2, 47 41 bytes





      lambda a,b:[a,b]+range(a,b,(a<b)*2-1)[1:]


      Try it online!



      Here's mine, now that a lot of other Python answers have been posted



      -6 bytes, thanks to G B






      share|improve this answer























      • Taking advantage of the empty range when it's invalid is a smart way to deal with forward or backwards lists. I could see that being very useful and is a nice trick to know exists.
        – akozi
        Nov 8 at 12:21






      • 2




        41 bytes using a single range: range(a,b,(a<b)*2-1)
        – G B
        Nov 8 at 12:35


















      up vote
      6
      down vote













      Japt, 8 bytes



      cUr!õ kU


      Try it here



                   :Implicit input of array U
      c :Concatenate
      Ur : Reduce U by
      !õ : Inclusive range
      kU : Remove all elements in original U





      share|improve this answer






























        up vote
        5
        down vote













        JavaScript (ES6), 51 bytes



        Takes input as (a)(b).





        a=>g=(b,c=b)=>(b+=b<a|-(b>a))-a?[...g(b,c),b]:[a,c]


        Try it online!



        Commented



        a =>                // main function, taking a
        g = ( // g = recursive function
        b, // taking b
        c = b // we save a backup of the original value of b into c
        ) => //
        (b += // add to b:
        b < a | // +1 if b is less than a
        -(b > a) // -1 if b is greater than a
        ) // (or 0 if b = a)
        - a ? // if the updated value of b is not equal to a:
        [ // generate a new array:
        ...g(b, c), // prepend all values generated by a recursive call
        b // append the current value of b
        ] //
        : // else:
        [a, c] // stop recursion and return the first 2 values: a and c





        share|improve this answer






























          up vote
          5
          down vote













          Java 10, 109 108 104 102 93 62 bytes





          Using a space-delimited String:



          b->a->{var r=a+" "+b;for(;a<b?++a<b:--a>b;)r+=" "+a;return r;}


          Try it online.



          Using a List:



          b->a->{var r=new java.util.Stack();for(r.add(a),r.add(b);a<b?++a<b:--a>b;)r.add(a);return r;}


          Try it online.



          (a<b?++a<b:--a>b can be ++a<b||(a-=2)>b for the same byte-count: Try it online for the String or Try it online for the List.)





          Old (109 108 104 102 101 bytes) answer using an array:



          a->b->{int s=a<b?1:-1,i=a!=b?(b-a)*s+1:2,r=new int[i];for(r[0]=a,r[1]=b;i>2;)r[--i]=b-=s;return r;}


          -7 bytes thanks to @nwellnhof.



          Try it online.



          Explanation:



          a->b->{                // Method with 2 int parameters & int-array return-type
          int s= // Step integer, starting at:
          a<b?1 // 1 if the first input is smaller than the second
          :-1; // -1 otherwise
          i= // Array-index integer, starting at:
          a!=b? // If the inputs aren't equal:
          (b-a)*s+1 // Set it to the absolute difference + 1
          : // Else:
          2, // Set it to 2
          r=new int[i]; // Result-array of that size
          for(r[0]=a, // Fill the first value with the first input
          r[1]=b; // And the second value with the second input
          i>2;) // Loop `i` downwards in the range [`i`,2):
          r[--i]= // Decrease `i` by 1 first with `--i`
          // Set the `i`'th array-value to:
          b-=s; // If the step integer is 1: decrease `b` by 1
          // If the step integer is -1: increase `b` by 1
          // And set the array-value to this modified `b`
          return r;} // Return the result-array





          share|improve this answer























          • Isn't there anything in Java's standard library for making ranges of integers? Or it is just too verbose to use?
            – Οurous
            Nov 8 at 11:17










          • @Οurous It's indeed too verbose: a->b->{var L=java.util.stream.IntStream.range(a,b).boxed().collect(java.util.Collectors.toList());L.add(0,b);L.add(0,a);return L;} (130 bytes)
            – Kevin Cruijssen
            Nov 8 at 12:11










          • Is it Java 8 or Java 10 ? Because of "var" ^^'
            – Neyt
            Nov 9 at 10:45






          • 1




            @Neyt Ah, fixed. My initial version with the array below didn't use var, which is why I usually put those at 8, and the ones that does use var as 10 (and the ones using String.repeat as 11). :) Forgot to update it after adding the List and String answers, should be corrected now. Thanks.
            – Kevin Cruijssen
            Nov 9 at 10:51




















          up vote
          4
          down vote













          Haskell, 34 bytes



          a#b=a:b:[a+1..b-1]++[a-1,a-2..b+1]


          Try it online!






          share|improve this answer





















          • This does not work. GHC interprets b-1 as b $ (-1). Use b- 1 instead.
            – Mark Neu
            2 days ago










          • @MarkNeu: it does work. See TIO link.
            – nimi
            2 days ago










          • Oh, sorry! I had NegativeLiterals on.
            – Mark Neu
            2 days ago


















          up vote
          4
          down vote














          Jelly, 4 bytes



          ,œ|r


          Try it online!



          How it works



          ,œ|r  Main link. Left argument: a. Right argument: b

          , Pair; yield [a, b].
          r Range; yield [a, ..., b].
          œ| Perform multiset union.





          share|improve this answer




























            up vote
            4
            down vote














            J, 26 bytes



            ,,[|.@]^:(>{.)<.+1}.i.@|@-


            Try it online!



            Explanation:



            A dyadic verb (takes left and right argument)



                                     -    subtracts the arguments
            |@ and finds the absolute value
            i.@ and makes a list 0..absolute difference
            1}. drops the fist element
            + adds to the entire list
            <. the smaller of the arguments
            |.@] reverses the list
            ^: only if
            [ the left argument
            (>{.) is greater than the first item of the list
            , appends the list to
            , the right argument appended to the left one





            share|improve this answer



















            • 1




              ,,[:}.@}:<.+i.@-@(+*)@- for 23 bytes and no special casing on relative argument ordering (rather: it's hidden inside the signum *). i feel like this could get down under 20 but i'm tired.
              – Jonah
              2 days ago












            • @Jonah Thank you! Btw FrownyFrog's solution is way better than mine, so I 'm not going to golf it any further.
              – Galen Ivanov
              2 days ago


















            up vote
            4
            down vote














            Octave, 45 bytes





            @(a,b)[a b linspace(a,b,(t=abs(a-b))+1)(2:t)]


            Try it online!






            share|improve this answer























            • IF the first is larger than the second, the range must be descending
              – TFeld
              Nov 8 at 11:03










            • Oh man, I can't read
              – Luis Mendo
              Nov 8 at 11:03










            • I ended up changing the language
              – Luis Mendo
              Nov 8 at 14:33


















            up vote
            4
            down vote














            J, 13 bytes



            ,,<.+i.@-~-.=


            Try it online!



                 i.@-~       range [0 .. |difference|-1], reverse if the difference is positive
            -.= remove the zero (either "=" is 0 or there’s nothing to remove)
            <.+ to each element add the smaller of the args
            ,, prepend args





            share|improve this answer





















            • Nice solution! I totally forgot abouti. with negative argument.
              – Galen Ivanov
              Nov 8 at 17:40






            • 1




              this is gorgeous!
              – Jonah
              2 days ago


















            up vote
            3
            down vote













            Batch, 107 bytes



            @echo %1
            @echo %2
            @for %%s in (1 -1)do @for /l %%i in (%1,%%s,%2)do @if %1 neq %%i if %%i neq %2 echo %%i


            Takes input as command-line arguments. Explanation:



            @echo %1
            @echo %2


            Output the two integers.



            @for %%s in (1 -1)do


            Try both ascending and descending ranges.



            @for /l %%i in (%1,%%s,%2)do


            Loop over the inclusive range.



            @if %1 neq %%i if %%i neq %2


            Exclude the two integers.



            echo %%i


            Output the current value.






            share|improve this answer




























              up vote
              3
              down vote














              Pyth, 5 bytes



              +QtrF


              Input is a two-element list, [input 1, input 2]. Try it online here, or verify all the test cases at once here.



              +QtrFQ   Implicit: Q=eval(input())
              Trailing Q inferred
              rFQ Generate range [input 1 - input 2)
              t Discard first element
              +Q Prepend Q





              share|improve this answer





















              • Using F instead of .* on 2-element lists is a brilliant trick that I will absolutely be using from here on.
                – hakr14
                Nov 8 at 16:31


















              up vote
              3
              down vote














              Red, 75 bytes



              func[a b][s: sign? d: b - a prin[a b]loop absolute d - s[prin[""a: a + s]]]


              Try it online!






              share|improve this answer




























                up vote
                3
                down vote














                Clean, 49 bytes



                import StdEnv
                @a b=init[a,b:tl[a,a+sign(b-a)..b]]


                Try it online!






                share|improve this answer




























                  up vote
                  3
                  down vote














                  Python 2, 52 47 41 bytes





                  lambda i,j:[i,j]+range(i,j,(i<j)*2-1)[1:]


                  Try it online!



                  -5 with thanks to @JoKing



                  -6 by slicing the first element from the range (idea stolen from and with credit to @TFeld)



                  Non-lambda version...




                  Python 2, 51 49 47 bytes





                  i,j=input();print[i,j]+range(i,j,(i<j)*2-1)[1:]


                  Try it online!



                  -2 with thanks to @JoKing






                  share|improve this answer






























                    up vote
                    3
                    down vote














                    APL (Dyalog Classic), 29 bytes





                    {⍺,⍵,(⌽⍣(⍺>⍵))(⍺⌊⍵)+¯1↓⍳|⍺-⍵}


                    Try it online!



                    A port of my J solution






                    share|improve this answer





















                    • Wow, I'm surprised this is so long for a seemingly simple task.
                      – Quintec
                      Nov 9 at 0:43










                    • @Quintec Probably it can be golfed, or maybe another algorithm will result in much shorter solution.
                      – Galen Ivanov
                      Nov 9 at 4:35


















                    up vote
                    3
                    down vote













                    PHP (102 bytes)



                    function t($a,$b){count($r=range($a,$b))>1?array_splice($r,1,0,array_pop($r)):$r=[$a,$b];print_r($r);}


                    Sandbox



                    Unfortunately (for golf) PHP has rather verbose function names, which contribute a lot to the length. But the basic idea is to create a range, then pop off the last element and stitch it back in at offset 1. For the 4,4 example I had to add count($r=range($a,$b))>1?...:$r=[$a,$b]; which adds quite a bit, and unfortunately array_splice() is by reference which hit me for a few more bytes ($r= and a ;). All because of that "edge case", lol.



                    Well anyway enjoy!






                    share|improve this answer























                    • I dont think that this is a right approach for code golf. Check this one function t($a,$b){$o=array($a,$b);for($i=$a+1;$i<$b;$i++)$o=$i;print_r($o);}
                      – th3pirat3
                      2 days ago












                    • Or something like this function t($a,$b){echo $a.$b;for($i=$a+1;$i<$b;$i++)echo $i};
                      – th3pirat3
                      2 days ago








                    • 1




                      It has to be a function and it has to output an array. If you have a better answer your more then welcome to post it.
                      – ArtisticPhoenix
                      2 days ago












                    • I edited it, is that a valid submission now? Shall I put it as a new answer or what?
                      – th3pirat3
                      2 days ago










                    • That is entirely up to you, I just wanted to do it without a loop ... lol
                      – ArtisticPhoenix
                      2 days ago


















                    up vote
                    3
                    down vote














                    D, 85 bytes





                    Tf(T)(T a,T b){Tv=[a,b];T c=2*(b>a)-1;for(T i=a+c;a!=b&&b!=i;i+=c)v~=i;return v;}


                    Try it online!



                    A port of @HatsuPointerKun's C++ answer into D.






                    share|improve this answer




























                      up vote
                      3
                      down vote













                      TI-BASIC, 35 34 bytes



                      -1 byte from Misha Lavrov



                      Prompt A,B
                      Disp A,B
                      cos(π(A>B
                      For(I,A+Ans,B-Ans,Ans
                      Disp I
                      End





                      share|improve this answer



















                      • 2




                        And one more byte by replacing 1-2(A>B with cos(π(A>B.
                        – Misha Lavrov
                        Nov 8 at 20:55










                      • @MishaLavrov seq( wouldn't work for inputs where A and B are the same, unfortunately :(
                        – kamoroso94
                        Nov 8 at 22:33












                      • True - also, I left out an argument of seq(, so I'm no longer convinced it even is smaller. Still, the cos( trick should help.
                        – Misha Lavrov
                        Nov 8 at 22:34


















                      up vote
                      2
                      down vote














                      Charcoal, 15 bytes



                      IE²NI…⊕θηI⮌…⊕ηθ


                      Try it online! Link is to verbose version of code. Explanation:



                      IE²N


                      Print the inputs on separate lines.



                      I…⊕θη


                      Print the ascending range, if any.



                      I⮌…⊕ηθ


                      Print the reverse ascending reverse range, if any.






                      share|improve this answer




























                        up vote
                        2
                        down vote














                        Dart, 85 84 bytes



                        f(a,b)=>[a,b]+((a-b).abs()>1?List.generate((a-b).abs()-1,(i)=>(a>b?-i-1:i+1)+a):);


                        Try it online!




                      • -1 by going from >= to >





                      • share|improve this answer




























                          up vote
                          2
                          down vote













                          QBASIC, 39 53 bytes



                          INPUT a,b
                          ?a
                          ?b
                          FOR q=a+1TO b-1 STEP SGN(b-a)
                          ?q
                          NEXT


                          Added the STEP parameter to account for a>b, and that uses the SGN() function to get a -1 or a +1 as increment. This however breaks the REPL because the SGN() function isn't implemented there...



                          Try it (the old answer) online!






                          share|improve this answer






























                            up vote
                            2
                            down vote














                            Ruby, 33 40 bytes





                            ->a,b{[a,b]+[*a..b,*a.downto(b)][1..-2]}


                            Try it online!



                            Temporary fix, trying to find a better idea






                            share|improve this answer



















                            • 3




                              For [4,4] this gives only one [4]
                              – Kirill L.
                              Nov 8 at 9:36


















                            up vote
                            2
                            down vote














                            C (gcc), 65 bytes





                            f(a,b){for(printf("%d %d",a,b);a<b?++a<b:--a>b;)printf(" %d",a);}


                            Try it online!



                            Not very exciting. The loop increment is borrowed from an early version of Kevin Cruijssen's Java answer.






                            share|improve this answer



























                              1 2
                              next



                              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',
                              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%2f175485%2fthe-first-the-last-and-everything-between%23new-answer', 'question_page');
                              }
                              );

                              Post as a guest
































                              51 Answers
                              51






                              active

                              oldest

                              votes








                              51 Answers
                              51






                              active

                              oldest

                              votes









                              active

                              oldest

                              votes






                              active

                              oldest

                              votes








                              1 2
                              next









                              up vote
                              14
                              down vote














                              R, 39 33 30 bytes





                              c(a<-scan(),setdiff(a:a[2],a))


                              Try it online!



                              Thanks for saved bytes to user2390246 and J.Doe.






                              share|improve this answer























                              • You could save a few bytes by taking the input as a vector rather than as two separate integers.
                                – user2390246
                                Nov 8 at 11:47










                              • Yeah, that's reasonable, and it actually then becomes even shorter as a full program rather than function.
                                – Kirill L.
                                Nov 8 at 12:04










                              • You can abuse the fact the : operator uses the first element of both args for 30 bytes
                                – J.Doe
                                Nov 8 at 12:20

















                              up vote
                              14
                              down vote














                              R, 39 33 30 bytes





                              c(a<-scan(),setdiff(a:a[2],a))


                              Try it online!



                              Thanks for saved bytes to user2390246 and J.Doe.






                              share|improve this answer























                              • You could save a few bytes by taking the input as a vector rather than as two separate integers.
                                – user2390246
                                Nov 8 at 11:47










                              • Yeah, that's reasonable, and it actually then becomes even shorter as a full program rather than function.
                                – Kirill L.
                                Nov 8 at 12:04










                              • You can abuse the fact the : operator uses the first element of both args for 30 bytes
                                – J.Doe
                                Nov 8 at 12:20















                              up vote
                              14
                              down vote










                              up vote
                              14
                              down vote










                              R, 39 33 30 bytes





                              c(a<-scan(),setdiff(a:a[2],a))


                              Try it online!



                              Thanks for saved bytes to user2390246 and J.Doe.






                              share|improve this answer















                              R, 39 33 30 bytes





                              c(a<-scan(),setdiff(a:a[2],a))


                              Try it online!



                              Thanks for saved bytes to user2390246 and J.Doe.







                              share|improve this answer














                              share|improve this answer



                              share|improve this answer








                              edited Nov 8 at 12:24

























                              answered Nov 8 at 9:35









                              Kirill L.

                              3,1761118




                              3,1761118












                              • You could save a few bytes by taking the input as a vector rather than as two separate integers.
                                – user2390246
                                Nov 8 at 11:47










                              • Yeah, that's reasonable, and it actually then becomes even shorter as a full program rather than function.
                                – Kirill L.
                                Nov 8 at 12:04










                              • You can abuse the fact the : operator uses the first element of both args for 30 bytes
                                – J.Doe
                                Nov 8 at 12:20




















                              • You could save a few bytes by taking the input as a vector rather than as two separate integers.
                                – user2390246
                                Nov 8 at 11:47










                              • Yeah, that's reasonable, and it actually then becomes even shorter as a full program rather than function.
                                – Kirill L.
                                Nov 8 at 12:04










                              • You can abuse the fact the : operator uses the first element of both args for 30 bytes
                                – J.Doe
                                Nov 8 at 12:20


















                              You could save a few bytes by taking the input as a vector rather than as two separate integers.
                              – user2390246
                              Nov 8 at 11:47




                              You could save a few bytes by taking the input as a vector rather than as two separate integers.
                              – user2390246
                              Nov 8 at 11:47












                              Yeah, that's reasonable, and it actually then becomes even shorter as a full program rather than function.
                              – Kirill L.
                              Nov 8 at 12:04




                              Yeah, that's reasonable, and it actually then becomes even shorter as a full program rather than function.
                              – Kirill L.
                              Nov 8 at 12:04












                              You can abuse the fact the : operator uses the first element of both args for 30 bytes
                              – J.Doe
                              Nov 8 at 12:20






                              You can abuse the fact the : operator uses the first element of both args for 30 bytes
                              – J.Doe
                              Nov 8 at 12:20












                              up vote
                              12
                              down vote














                              05AB1E, 4 bytes



                              Ÿ¦¨«


                              Try it online!



                              Explanation



                                  Ÿ      # inclusive range [a ... b]
                              ¦¨ # remove the first and last element
                              « # append to input





                              share|improve this answer

























                                up vote
                                12
                                down vote














                                05AB1E, 4 bytes



                                Ÿ¦¨«


                                Try it online!



                                Explanation



                                    Ÿ      # inclusive range [a ... b]
                                ¦¨ # remove the first and last element
                                « # append to input





                                share|improve this answer























                                  up vote
                                  12
                                  down vote










                                  up vote
                                  12
                                  down vote










                                  05AB1E, 4 bytes



                                  Ÿ¦¨«


                                  Try it online!



                                  Explanation



                                      Ÿ      # inclusive range [a ... b]
                                  ¦¨ # remove the first and last element
                                  « # append to input





                                  share|improve this answer













                                  05AB1E, 4 bytes



                                  Ÿ¦¨«


                                  Try it online!



                                  Explanation



                                      Ÿ      # inclusive range [a ... b]
                                  ¦¨ # remove the first and last element
                                  « # append to input






                                  share|improve this answer












                                  share|improve this answer



                                  share|improve this answer










                                  answered Nov 8 at 9:09









                                  Emigna

                                  44.6k432136




                                  44.6k432136






















                                      up vote
                                      11
                                      down vote














                                      Python 3, 52 48 47 42 bytes





                                      lambda a,b:[a,b,*range(a,b,(a<b)*2-1)[1:]]


                                      Try it online!





                                      Combined former implementations.






                                      share|improve this answer










                                      New contributor




                                      cobaltp is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                      Check out our Code of Conduct.














                                      • 2




                                        You can remove the space at or-1 to save a byte.
                                        – Kevin Cruijssen
                                        Nov 8 at 9:56















                                      up vote
                                      11
                                      down vote














                                      Python 3, 52 48 47 42 bytes





                                      lambda a,b:[a,b,*range(a,b,(a<b)*2-1)[1:]]


                                      Try it online!





                                      Combined former implementations.






                                      share|improve this answer










                                      New contributor




                                      cobaltp is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                      Check out our Code of Conduct.














                                      • 2




                                        You can remove the space at or-1 to save a byte.
                                        – Kevin Cruijssen
                                        Nov 8 at 9:56













                                      up vote
                                      11
                                      down vote










                                      up vote
                                      11
                                      down vote










                                      Python 3, 52 48 47 42 bytes





                                      lambda a,b:[a,b,*range(a,b,(a<b)*2-1)[1:]]


                                      Try it online!





                                      Combined former implementations.






                                      share|improve this answer










                                      New contributor




                                      cobaltp is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                      Check out our Code of Conduct.










                                      Python 3, 52 48 47 42 bytes





                                      lambda a,b:[a,b,*range(a,b,(a<b)*2-1)[1:]]


                                      Try it online!





                                      Combined former implementations.







                                      share|improve this answer










                                      New contributor




                                      cobaltp is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                      Check out our Code of Conduct.









                                      share|improve this answer



                                      share|improve this answer








                                      edited Nov 8 at 13:15





















                                      New contributor




                                      cobaltp is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                      Check out our Code of Conduct.









                                      answered Nov 8 at 9:15









                                      cobaltp

                                      1516




                                      1516




                                      New contributor




                                      cobaltp is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                      Check out our Code of Conduct.





                                      New contributor





                                      cobaltp is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                      Check out our Code of Conduct.






                                      cobaltp is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                      Check out our Code of Conduct.








                                      • 2




                                        You can remove the space at or-1 to save a byte.
                                        – Kevin Cruijssen
                                        Nov 8 at 9:56














                                      • 2




                                        You can remove the space at or-1 to save a byte.
                                        – Kevin Cruijssen
                                        Nov 8 at 9:56








                                      2




                                      2




                                      You can remove the space at or-1 to save a byte.
                                      – Kevin Cruijssen
                                      Nov 8 at 9:56




                                      You can remove the space at or-1 to save a byte.
                                      – Kevin Cruijssen
                                      Nov 8 at 9:56










                                      up vote
                                      9
                                      down vote














                                      Python 2 (Cython), 36 35 bytes





                                      lambda x:x+range(*x,-cmp(*x)|1)[1:]


                                      Thanks to @nwellnhof for golfing off 1 byte!



                                      Try it online!






                                      Python 2, 37 bytes





                                      lambda x:x+range(*x+[-cmp(*x)|1])[1:]


                                      Thanks to @JonasAusevicius for the port to CPython!



                                      Try it online!






                                      share|improve this answer



















                                      • 2




                                        This can be applied to standard Python 2 at 37 bytes, making it the shortest answer yet: lambda x:x+range(*x+[-cmp(*x)|1])[1:]. Nice solution
                                        – Jonas Ausevicius
                                        Nov 8 at 14:17















                                      up vote
                                      9
                                      down vote














                                      Python 2 (Cython), 36 35 bytes





                                      lambda x:x+range(*x,-cmp(*x)|1)[1:]


                                      Thanks to @nwellnhof for golfing off 1 byte!



                                      Try it online!






                                      Python 2, 37 bytes





                                      lambda x:x+range(*x+[-cmp(*x)|1])[1:]


                                      Thanks to @JonasAusevicius for the port to CPython!



                                      Try it online!






                                      share|improve this answer



















                                      • 2




                                        This can be applied to standard Python 2 at 37 bytes, making it the shortest answer yet: lambda x:x+range(*x+[-cmp(*x)|1])[1:]. Nice solution
                                        – Jonas Ausevicius
                                        Nov 8 at 14:17













                                      up vote
                                      9
                                      down vote










                                      up vote
                                      9
                                      down vote










                                      Python 2 (Cython), 36 35 bytes





                                      lambda x:x+range(*x,-cmp(*x)|1)[1:]


                                      Thanks to @nwellnhof for golfing off 1 byte!



                                      Try it online!






                                      Python 2, 37 bytes





                                      lambda x:x+range(*x+[-cmp(*x)|1])[1:]


                                      Thanks to @JonasAusevicius for the port to CPython!



                                      Try it online!






                                      share|improve this answer















                                      Python 2 (Cython), 36 35 bytes





                                      lambda x:x+range(*x,-cmp(*x)|1)[1:]


                                      Thanks to @nwellnhof for golfing off 1 byte!



                                      Try it online!






                                      Python 2, 37 bytes





                                      lambda x:x+range(*x+[-cmp(*x)|1])[1:]


                                      Thanks to @JonasAusevicius for the port to CPython!



                                      Try it online!







                                      share|improve this answer














                                      share|improve this answer



                                      share|improve this answer








                                      edited Nov 8 at 15:04

























                                      answered Nov 8 at 13:22









                                      Dennis

                                      183k32293727




                                      183k32293727








                                      • 2




                                        This can be applied to standard Python 2 at 37 bytes, making it the shortest answer yet: lambda x:x+range(*x+[-cmp(*x)|1])[1:]. Nice solution
                                        – Jonas Ausevicius
                                        Nov 8 at 14:17














                                      • 2




                                        This can be applied to standard Python 2 at 37 bytes, making it the shortest answer yet: lambda x:x+range(*x+[-cmp(*x)|1])[1:]. Nice solution
                                        – Jonas Ausevicius
                                        Nov 8 at 14:17








                                      2




                                      2




                                      This can be applied to standard Python 2 at 37 bytes, making it the shortest answer yet: lambda x:x+range(*x+[-cmp(*x)|1])[1:]. Nice solution
                                      – Jonas Ausevicius
                                      Nov 8 at 14:17




                                      This can be applied to standard Python 2 at 37 bytes, making it the shortest answer yet: lambda x:x+range(*x+[-cmp(*x)|1])[1:]. Nice solution
                                      – Jonas Ausevicius
                                      Nov 8 at 14:17










                                      up vote
                                      8
                                      down vote














                                      Perl 6, 26 22 bytes





                                      {|@_,|[...^](@_).skip}


                                      Try it online!



                                      Explanation



                                      {                    }
                                      |@_, # Slip args a,b into result
                                      [...^](@_) # Reduce args a,b with ...^ operator, same as a...^b
                                      .skip # Skip first element
                                      | # Slip into result





                                      share|improve this answer



























                                        up vote
                                        8
                                        down vote














                                        Perl 6, 26 22 bytes





                                        {|@_,|[...^](@_).skip}


                                        Try it online!



                                        Explanation



                                        {                    }
                                        |@_, # Slip args a,b into result
                                        [...^](@_) # Reduce args a,b with ...^ operator, same as a...^b
                                        .skip # Skip first element
                                        | # Slip into result





                                        share|improve this answer

























                                          up vote
                                          8
                                          down vote










                                          up vote
                                          8
                                          down vote










                                          Perl 6, 26 22 bytes





                                          {|@_,|[...^](@_).skip}


                                          Try it online!



                                          Explanation



                                          {                    }
                                          |@_, # Slip args a,b into result
                                          [...^](@_) # Reduce args a,b with ...^ operator, same as a...^b
                                          .skip # Skip first element
                                          | # Slip into result





                                          share|improve this answer















                                          Perl 6, 26 22 bytes





                                          {|@_,|[...^](@_).skip}


                                          Try it online!



                                          Explanation



                                          {                    }
                                          |@_, # Slip args a,b into result
                                          [...^](@_) # Reduce args a,b with ...^ operator, same as a...^b
                                          .skip # Skip first element
                                          | # Slip into result






                                          share|improve this answer














                                          share|improve this answer



                                          share|improve this answer








                                          edited Nov 8 at 10:50

























                                          answered Nov 8 at 9:35









                                          nwellnhof

                                          5,628921




                                          5,628921






















                                              up vote
                                              7
                                              down vote














                                              Python 2, 40 bytes





                                              lambda x,y:[x,y]+range(x,y,-(y<x)|1)[1:]


                                              Try it online!






                                              share|improve this answer





















                                              • Really like -(y<x)|1. very cool but I can't work out why it works! Any chance you can explain it?
                                                – ElPedro
                                                Nov 8 at 19:06






                                              • 2




                                                @ElPedro Basically, y<x checks if y is strictly less than x, and returns True if it is, False otherwise. After that, unary - is applied to it, which converts True to -1 and False to 0. The last step is to bitwise OR this number with 1. This obviously leaves 1 (0b1) unaffected, and also leaves -1 (-0b1) unaffected (the sign bit of -1 is set, so it's kept as such). However, it does convert 0 to 1, so that range doesn't complain about me using a step of 0.
                                                – Erik the Outgolfer
                                                Nov 8 at 19:32










                                              • That is seriously cool and very clever. If I could upvote twice I would. Many thanks for the explanation.
                                                – ElPedro
                                                Nov 8 at 20:27

















                                              up vote
                                              7
                                              down vote














                                              Python 2, 40 bytes





                                              lambda x,y:[x,y]+range(x,y,-(y<x)|1)[1:]


                                              Try it online!






                                              share|improve this answer





















                                              • Really like -(y<x)|1. very cool but I can't work out why it works! Any chance you can explain it?
                                                – ElPedro
                                                Nov 8 at 19:06






                                              • 2




                                                @ElPedro Basically, y<x checks if y is strictly less than x, and returns True if it is, False otherwise. After that, unary - is applied to it, which converts True to -1 and False to 0. The last step is to bitwise OR this number with 1. This obviously leaves 1 (0b1) unaffected, and also leaves -1 (-0b1) unaffected (the sign bit of -1 is set, so it's kept as such). However, it does convert 0 to 1, so that range doesn't complain about me using a step of 0.
                                                – Erik the Outgolfer
                                                Nov 8 at 19:32










                                              • That is seriously cool and very clever. If I could upvote twice I would. Many thanks for the explanation.
                                                – ElPedro
                                                Nov 8 at 20:27















                                              up vote
                                              7
                                              down vote










                                              up vote
                                              7
                                              down vote










                                              Python 2, 40 bytes





                                              lambda x,y:[x,y]+range(x,y,-(y<x)|1)[1:]


                                              Try it online!






                                              share|improve this answer













                                              Python 2, 40 bytes





                                              lambda x,y:[x,y]+range(x,y,-(y<x)|1)[1:]


                                              Try it online!







                                              share|improve this answer












                                              share|improve this answer



                                              share|improve this answer










                                              answered Nov 8 at 13:06









                                              Erik the Outgolfer

                                              30.2k428100




                                              30.2k428100












                                              • Really like -(y<x)|1. very cool but I can't work out why it works! Any chance you can explain it?
                                                – ElPedro
                                                Nov 8 at 19:06






                                              • 2




                                                @ElPedro Basically, y<x checks if y is strictly less than x, and returns True if it is, False otherwise. After that, unary - is applied to it, which converts True to -1 and False to 0. The last step is to bitwise OR this number with 1. This obviously leaves 1 (0b1) unaffected, and also leaves -1 (-0b1) unaffected (the sign bit of -1 is set, so it's kept as such). However, it does convert 0 to 1, so that range doesn't complain about me using a step of 0.
                                                – Erik the Outgolfer
                                                Nov 8 at 19:32










                                              • That is seriously cool and very clever. If I could upvote twice I would. Many thanks for the explanation.
                                                – ElPedro
                                                Nov 8 at 20:27




















                                              • Really like -(y<x)|1. very cool but I can't work out why it works! Any chance you can explain it?
                                                – ElPedro
                                                Nov 8 at 19:06






                                              • 2




                                                @ElPedro Basically, y<x checks if y is strictly less than x, and returns True if it is, False otherwise. After that, unary - is applied to it, which converts True to -1 and False to 0. The last step is to bitwise OR this number with 1. This obviously leaves 1 (0b1) unaffected, and also leaves -1 (-0b1) unaffected (the sign bit of -1 is set, so it's kept as such). However, it does convert 0 to 1, so that range doesn't complain about me using a step of 0.
                                                – Erik the Outgolfer
                                                Nov 8 at 19:32










                                              • That is seriously cool and very clever. If I could upvote twice I would. Many thanks for the explanation.
                                                – ElPedro
                                                Nov 8 at 20:27


















                                              Really like -(y<x)|1. very cool but I can't work out why it works! Any chance you can explain it?
                                              – ElPedro
                                              Nov 8 at 19:06




                                              Really like -(y<x)|1. very cool but I can't work out why it works! Any chance you can explain it?
                                              – ElPedro
                                              Nov 8 at 19:06




                                              2




                                              2




                                              @ElPedro Basically, y<x checks if y is strictly less than x, and returns True if it is, False otherwise. After that, unary - is applied to it, which converts True to -1 and False to 0. The last step is to bitwise OR this number with 1. This obviously leaves 1 (0b1) unaffected, and also leaves -1 (-0b1) unaffected (the sign bit of -1 is set, so it's kept as such). However, it does convert 0 to 1, so that range doesn't complain about me using a step of 0.
                                              – Erik the Outgolfer
                                              Nov 8 at 19:32




                                              @ElPedro Basically, y<x checks if y is strictly less than x, and returns True if it is, False otherwise. After that, unary - is applied to it, which converts True to -1 and False to 0. The last step is to bitwise OR this number with 1. This obviously leaves 1 (0b1) unaffected, and also leaves -1 (-0b1) unaffected (the sign bit of -1 is set, so it's kept as such). However, it does convert 0 to 1, so that range doesn't complain about me using a step of 0.
                                              – Erik the Outgolfer
                                              Nov 8 at 19:32












                                              That is seriously cool and very clever. If I could upvote twice I would. Many thanks for the explanation.
                                              – ElPedro
                                              Nov 8 at 20:27






                                              That is seriously cool and very clever. If I could upvote twice I would. Many thanks for the explanation.
                                              – ElPedro
                                              Nov 8 at 20:27












                                              up vote
                                              6
                                              down vote













                                              Python 3, 64 62 51 bytes



                                              lambda a,b:[a,b]+[*range(a+1,b)]+[*range(a-1,b,-1)]



                                              Try it online!



                                              Python 2, 58 45 bytes



                                              lambda a,b:[a,b]+range(a+1,b)+range(a-1,b,-1)



                                              Try it online!






                                              share|improve this answer










                                              New contributor




                                              Jonas Ausevicius is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                              Check out our Code of Conduct.














                                              • 2




                                                Because an empty list is falsey, you can remove the a<=b and from both answers
                                                – TFeld
                                                Nov 8 at 10:03










                                              • You could also use + instead of or
                                                – TFeld
                                                Nov 8 at 10:13










                                              • @TFeld thank you
                                                – Jonas Ausevicius
                                                Nov 8 at 10:24















                                              up vote
                                              6
                                              down vote













                                              Python 3, 64 62 51 bytes



                                              lambda a,b:[a,b]+[*range(a+1,b)]+[*range(a-1,b,-1)]



                                              Try it online!



                                              Python 2, 58 45 bytes



                                              lambda a,b:[a,b]+range(a+1,b)+range(a-1,b,-1)



                                              Try it online!






                                              share|improve this answer










                                              New contributor




                                              Jonas Ausevicius is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                              Check out our Code of Conduct.














                                              • 2




                                                Because an empty list is falsey, you can remove the a<=b and from both answers
                                                – TFeld
                                                Nov 8 at 10:03










                                              • You could also use + instead of or
                                                – TFeld
                                                Nov 8 at 10:13










                                              • @TFeld thank you
                                                – Jonas Ausevicius
                                                Nov 8 at 10:24













                                              up vote
                                              6
                                              down vote










                                              up vote
                                              6
                                              down vote









                                              Python 3, 64 62 51 bytes



                                              lambda a,b:[a,b]+[*range(a+1,b)]+[*range(a-1,b,-1)]



                                              Try it online!



                                              Python 2, 58 45 bytes



                                              lambda a,b:[a,b]+range(a+1,b)+range(a-1,b,-1)



                                              Try it online!






                                              share|improve this answer










                                              New contributor




                                              Jonas Ausevicius is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                              Check out our Code of Conduct.









                                              Python 3, 64 62 51 bytes



                                              lambda a,b:[a,b]+[*range(a+1,b)]+[*range(a-1,b,-1)]



                                              Try it online!



                                              Python 2, 58 45 bytes



                                              lambda a,b:[a,b]+range(a+1,b)+range(a-1,b,-1)



                                              Try it online!







                                              share|improve this answer










                                              New contributor




                                              Jonas Ausevicius is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                              Check out our Code of Conduct.









                                              share|improve this answer



                                              share|improve this answer








                                              edited Nov 8 at 10:21





















                                              New contributor




                                              Jonas Ausevicius is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                              Check out our Code of Conduct.









                                              answered Nov 8 at 9:21









                                              Jonas Ausevicius

                                              613




                                              613




                                              New contributor




                                              Jonas Ausevicius is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                              Check out our Code of Conduct.





                                              New contributor





                                              Jonas Ausevicius is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                              Check out our Code of Conduct.






                                              Jonas Ausevicius is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                              Check out our Code of Conduct.








                                              • 2




                                                Because an empty list is falsey, you can remove the a<=b and from both answers
                                                – TFeld
                                                Nov 8 at 10:03










                                              • You could also use + instead of or
                                                – TFeld
                                                Nov 8 at 10:13










                                              • @TFeld thank you
                                                – Jonas Ausevicius
                                                Nov 8 at 10:24














                                              • 2




                                                Because an empty list is falsey, you can remove the a<=b and from both answers
                                                – TFeld
                                                Nov 8 at 10:03










                                              • You could also use + instead of or
                                                – TFeld
                                                Nov 8 at 10:13










                                              • @TFeld thank you
                                                – Jonas Ausevicius
                                                Nov 8 at 10:24








                                              2




                                              2




                                              Because an empty list is falsey, you can remove the a<=b and from both answers
                                              – TFeld
                                              Nov 8 at 10:03




                                              Because an empty list is falsey, you can remove the a<=b and from both answers
                                              – TFeld
                                              Nov 8 at 10:03












                                              You could also use + instead of or
                                              – TFeld
                                              Nov 8 at 10:13




                                              You could also use + instead of or
                                              – TFeld
                                              Nov 8 at 10:13












                                              @TFeld thank you
                                              – Jonas Ausevicius
                                              Nov 8 at 10:24




                                              @TFeld thank you
                                              – Jonas Ausevicius
                                              Nov 8 at 10:24










                                              up vote
                                              6
                                              down vote














                                              Python 2, 47 41 bytes





                                              lambda a,b:[a,b]+range(a,b,(a<b)*2-1)[1:]


                                              Try it online!



                                              Here's mine, now that a lot of other Python answers have been posted



                                              -6 bytes, thanks to G B






                                              share|improve this answer























                                              • Taking advantage of the empty range when it's invalid is a smart way to deal with forward or backwards lists. I could see that being very useful and is a nice trick to know exists.
                                                – akozi
                                                Nov 8 at 12:21






                                              • 2




                                                41 bytes using a single range: range(a,b,(a<b)*2-1)
                                                – G B
                                                Nov 8 at 12:35















                                              up vote
                                              6
                                              down vote














                                              Python 2, 47 41 bytes





                                              lambda a,b:[a,b]+range(a,b,(a<b)*2-1)[1:]


                                              Try it online!



                                              Here's mine, now that a lot of other Python answers have been posted



                                              -6 bytes, thanks to G B






                                              share|improve this answer























                                              • Taking advantage of the empty range when it's invalid is a smart way to deal with forward or backwards lists. I could see that being very useful and is a nice trick to know exists.
                                                – akozi
                                                Nov 8 at 12:21






                                              • 2




                                                41 bytes using a single range: range(a,b,(a<b)*2-1)
                                                – G B
                                                Nov 8 at 12:35













                                              up vote
                                              6
                                              down vote










                                              up vote
                                              6
                                              down vote










                                              Python 2, 47 41 bytes





                                              lambda a,b:[a,b]+range(a,b,(a<b)*2-1)[1:]


                                              Try it online!



                                              Here's mine, now that a lot of other Python answers have been posted



                                              -6 bytes, thanks to G B






                                              share|improve this answer















                                              Python 2, 47 41 bytes





                                              lambda a,b:[a,b]+range(a,b,(a<b)*2-1)[1:]


                                              Try it online!



                                              Here's mine, now that a lot of other Python answers have been posted



                                              -6 bytes, thanks to G B







                                              share|improve this answer














                                              share|improve this answer



                                              share|improve this answer








                                              edited Nov 8 at 13:09

























                                              answered Nov 8 at 9:18









                                              TFeld

                                              13.3k21039




                                              13.3k21039












                                              • Taking advantage of the empty range when it's invalid is a smart way to deal with forward or backwards lists. I could see that being very useful and is a nice trick to know exists.
                                                – akozi
                                                Nov 8 at 12:21






                                              • 2




                                                41 bytes using a single range: range(a,b,(a<b)*2-1)
                                                – G B
                                                Nov 8 at 12:35


















                                              • Taking advantage of the empty range when it's invalid is a smart way to deal with forward or backwards lists. I could see that being very useful and is a nice trick to know exists.
                                                – akozi
                                                Nov 8 at 12:21






                                              • 2




                                                41 bytes using a single range: range(a,b,(a<b)*2-1)
                                                – G B
                                                Nov 8 at 12:35
















                                              Taking advantage of the empty range when it's invalid is a smart way to deal with forward or backwards lists. I could see that being very useful and is a nice trick to know exists.
                                              – akozi
                                              Nov 8 at 12:21




                                              Taking advantage of the empty range when it's invalid is a smart way to deal with forward or backwards lists. I could see that being very useful and is a nice trick to know exists.
                                              – akozi
                                              Nov 8 at 12:21




                                              2




                                              2




                                              41 bytes using a single range: range(a,b,(a<b)*2-1)
                                              – G B
                                              Nov 8 at 12:35




                                              41 bytes using a single range: range(a,b,(a<b)*2-1)
                                              – G B
                                              Nov 8 at 12:35










                                              up vote
                                              6
                                              down vote













                                              Japt, 8 bytes



                                              cUr!õ kU


                                              Try it here



                                                           :Implicit input of array U
                                              c :Concatenate
                                              Ur : Reduce U by
                                              !õ : Inclusive range
                                              kU : Remove all elements in original U





                                              share|improve this answer



























                                                up vote
                                                6
                                                down vote













                                                Japt, 8 bytes



                                                cUr!õ kU


                                                Try it here



                                                             :Implicit input of array U
                                                c :Concatenate
                                                Ur : Reduce U by
                                                !õ : Inclusive range
                                                kU : Remove all elements in original U





                                                share|improve this answer

























                                                  up vote
                                                  6
                                                  down vote










                                                  up vote
                                                  6
                                                  down vote









                                                  Japt, 8 bytes



                                                  cUr!õ kU


                                                  Try it here



                                                               :Implicit input of array U
                                                  c :Concatenate
                                                  Ur : Reduce U by
                                                  !õ : Inclusive range
                                                  kU : Remove all elements in original U





                                                  share|improve this answer














                                                  Japt, 8 bytes



                                                  cUr!õ kU


                                                  Try it here



                                                               :Implicit input of array U
                                                  c :Concatenate
                                                  Ur : Reduce U by
                                                  !õ : Inclusive range
                                                  kU : Remove all elements in original U






                                                  share|improve this answer














                                                  share|improve this answer



                                                  share|improve this answer








                                                  edited Nov 8 at 16:37

























                                                  answered Nov 8 at 9:07









                                                  Shaggy

                                                  17.9k21663




                                                  17.9k21663






















                                                      up vote
                                                      5
                                                      down vote













                                                      JavaScript (ES6), 51 bytes



                                                      Takes input as (a)(b).





                                                      a=>g=(b,c=b)=>(b+=b<a|-(b>a))-a?[...g(b,c),b]:[a,c]


                                                      Try it online!



                                                      Commented



                                                      a =>                // main function, taking a
                                                      g = ( // g = recursive function
                                                      b, // taking b
                                                      c = b // we save a backup of the original value of b into c
                                                      ) => //
                                                      (b += // add to b:
                                                      b < a | // +1 if b is less than a
                                                      -(b > a) // -1 if b is greater than a
                                                      ) // (or 0 if b = a)
                                                      - a ? // if the updated value of b is not equal to a:
                                                      [ // generate a new array:
                                                      ...g(b, c), // prepend all values generated by a recursive call
                                                      b // append the current value of b
                                                      ] //
                                                      : // else:
                                                      [a, c] // stop recursion and return the first 2 values: a and c





                                                      share|improve this answer



























                                                        up vote
                                                        5
                                                        down vote













                                                        JavaScript (ES6), 51 bytes



                                                        Takes input as (a)(b).





                                                        a=>g=(b,c=b)=>(b+=b<a|-(b>a))-a?[...g(b,c),b]:[a,c]


                                                        Try it online!



                                                        Commented



                                                        a =>                // main function, taking a
                                                        g = ( // g = recursive function
                                                        b, // taking b
                                                        c = b // we save a backup of the original value of b into c
                                                        ) => //
                                                        (b += // add to b:
                                                        b < a | // +1 if b is less than a
                                                        -(b > a) // -1 if b is greater than a
                                                        ) // (or 0 if b = a)
                                                        - a ? // if the updated value of b is not equal to a:
                                                        [ // generate a new array:
                                                        ...g(b, c), // prepend all values generated by a recursive call
                                                        b // append the current value of b
                                                        ] //
                                                        : // else:
                                                        [a, c] // stop recursion and return the first 2 values: a and c





                                                        share|improve this answer

























                                                          up vote
                                                          5
                                                          down vote










                                                          up vote
                                                          5
                                                          down vote









                                                          JavaScript (ES6), 51 bytes



                                                          Takes input as (a)(b).





                                                          a=>g=(b,c=b)=>(b+=b<a|-(b>a))-a?[...g(b,c),b]:[a,c]


                                                          Try it online!



                                                          Commented



                                                          a =>                // main function, taking a
                                                          g = ( // g = recursive function
                                                          b, // taking b
                                                          c = b // we save a backup of the original value of b into c
                                                          ) => //
                                                          (b += // add to b:
                                                          b < a | // +1 if b is less than a
                                                          -(b > a) // -1 if b is greater than a
                                                          ) // (or 0 if b = a)
                                                          - a ? // if the updated value of b is not equal to a:
                                                          [ // generate a new array:
                                                          ...g(b, c), // prepend all values generated by a recursive call
                                                          b // append the current value of b
                                                          ] //
                                                          : // else:
                                                          [a, c] // stop recursion and return the first 2 values: a and c





                                                          share|improve this answer














                                                          JavaScript (ES6), 51 bytes



                                                          Takes input as (a)(b).





                                                          a=>g=(b,c=b)=>(b+=b<a|-(b>a))-a?[...g(b,c),b]:[a,c]


                                                          Try it online!



                                                          Commented



                                                          a =>                // main function, taking a
                                                          g = ( // g = recursive function
                                                          b, // taking b
                                                          c = b // we save a backup of the original value of b into c
                                                          ) => //
                                                          (b += // add to b:
                                                          b < a | // +1 if b is less than a
                                                          -(b > a) // -1 if b is greater than a
                                                          ) // (or 0 if b = a)
                                                          - a ? // if the updated value of b is not equal to a:
                                                          [ // generate a new array:
                                                          ...g(b, c), // prepend all values generated by a recursive call
                                                          b // append the current value of b
                                                          ] //
                                                          : // else:
                                                          [a, c] // stop recursion and return the first 2 values: a and c






                                                          share|improve this answer














                                                          share|improve this answer



                                                          share|improve this answer








                                                          edited Nov 9 at 8:44

























                                                          answered Nov 8 at 17:03









                                                          Arnauld

                                                          68.1k584288




                                                          68.1k584288






















                                                              up vote
                                                              5
                                                              down vote













                                                              Java 10, 109 108 104 102 93 62 bytes





                                                              Using a space-delimited String:



                                                              b->a->{var r=a+" "+b;for(;a<b?++a<b:--a>b;)r+=" "+a;return r;}


                                                              Try it online.



                                                              Using a List:



                                                              b->a->{var r=new java.util.Stack();for(r.add(a),r.add(b);a<b?++a<b:--a>b;)r.add(a);return r;}


                                                              Try it online.



                                                              (a<b?++a<b:--a>b can be ++a<b||(a-=2)>b for the same byte-count: Try it online for the String or Try it online for the List.)





                                                              Old (109 108 104 102 101 bytes) answer using an array:



                                                              a->b->{int s=a<b?1:-1,i=a!=b?(b-a)*s+1:2,r=new int[i];for(r[0]=a,r[1]=b;i>2;)r[--i]=b-=s;return r;}


                                                              -7 bytes thanks to @nwellnhof.



                                                              Try it online.



                                                              Explanation:



                                                              a->b->{                // Method with 2 int parameters & int-array return-type
                                                              int s= // Step integer, starting at:
                                                              a<b?1 // 1 if the first input is smaller than the second
                                                              :-1; // -1 otherwise
                                                              i= // Array-index integer, starting at:
                                                              a!=b? // If the inputs aren't equal:
                                                              (b-a)*s+1 // Set it to the absolute difference + 1
                                                              : // Else:
                                                              2, // Set it to 2
                                                              r=new int[i]; // Result-array of that size
                                                              for(r[0]=a, // Fill the first value with the first input
                                                              r[1]=b; // And the second value with the second input
                                                              i>2;) // Loop `i` downwards in the range [`i`,2):
                                                              r[--i]= // Decrease `i` by 1 first with `--i`
                                                              // Set the `i`'th array-value to:
                                                              b-=s; // If the step integer is 1: decrease `b` by 1
                                                              // If the step integer is -1: increase `b` by 1
                                                              // And set the array-value to this modified `b`
                                                              return r;} // Return the result-array





                                                              share|improve this answer























                                                              • Isn't there anything in Java's standard library for making ranges of integers? Or it is just too verbose to use?
                                                                – Οurous
                                                                Nov 8 at 11:17










                                                              • @Οurous It's indeed too verbose: a->b->{var L=java.util.stream.IntStream.range(a,b).boxed().collect(java.util.Collectors.toList());L.add(0,b);L.add(0,a);return L;} (130 bytes)
                                                                – Kevin Cruijssen
                                                                Nov 8 at 12:11










                                                              • Is it Java 8 or Java 10 ? Because of "var" ^^'
                                                                – Neyt
                                                                Nov 9 at 10:45






                                                              • 1




                                                                @Neyt Ah, fixed. My initial version with the array below didn't use var, which is why I usually put those at 8, and the ones that does use var as 10 (and the ones using String.repeat as 11). :) Forgot to update it after adding the List and String answers, should be corrected now. Thanks.
                                                                – Kevin Cruijssen
                                                                Nov 9 at 10:51

















                                                              up vote
                                                              5
                                                              down vote













                                                              Java 10, 109 108 104 102 93 62 bytes





                                                              Using a space-delimited String:



                                                              b->a->{var r=a+" "+b;for(;a<b?++a<b:--a>b;)r+=" "+a;return r;}


                                                              Try it online.



                                                              Using a List:



                                                              b->a->{var r=new java.util.Stack();for(r.add(a),r.add(b);a<b?++a<b:--a>b;)r.add(a);return r;}


                                                              Try it online.



                                                              (a<b?++a<b:--a>b can be ++a<b||(a-=2)>b for the same byte-count: Try it online for the String or Try it online for the List.)





                                                              Old (109 108 104 102 101 bytes) answer using an array:



                                                              a->b->{int s=a<b?1:-1,i=a!=b?(b-a)*s+1:2,r=new int[i];for(r[0]=a,r[1]=b;i>2;)r[--i]=b-=s;return r;}


                                                              -7 bytes thanks to @nwellnhof.



                                                              Try it online.



                                                              Explanation:



                                                              a->b->{                // Method with 2 int parameters & int-array return-type
                                                              int s= // Step integer, starting at:
                                                              a<b?1 // 1 if the first input is smaller than the second
                                                              :-1; // -1 otherwise
                                                              i= // Array-index integer, starting at:
                                                              a!=b? // If the inputs aren't equal:
                                                              (b-a)*s+1 // Set it to the absolute difference + 1
                                                              : // Else:
                                                              2, // Set it to 2
                                                              r=new int[i]; // Result-array of that size
                                                              for(r[0]=a, // Fill the first value with the first input
                                                              r[1]=b; // And the second value with the second input
                                                              i>2;) // Loop `i` downwards in the range [`i`,2):
                                                              r[--i]= // Decrease `i` by 1 first with `--i`
                                                              // Set the `i`'th array-value to:
                                                              b-=s; // If the step integer is 1: decrease `b` by 1
                                                              // If the step integer is -1: increase `b` by 1
                                                              // And set the array-value to this modified `b`
                                                              return r;} // Return the result-array





                                                              share|improve this answer























                                                              • Isn't there anything in Java's standard library for making ranges of integers? Or it is just too verbose to use?
                                                                – Οurous
                                                                Nov 8 at 11:17










                                                              • @Οurous It's indeed too verbose: a->b->{var L=java.util.stream.IntStream.range(a,b).boxed().collect(java.util.Collectors.toList());L.add(0,b);L.add(0,a);return L;} (130 bytes)
                                                                – Kevin Cruijssen
                                                                Nov 8 at 12:11










                                                              • Is it Java 8 or Java 10 ? Because of "var" ^^'
                                                                – Neyt
                                                                Nov 9 at 10:45






                                                              • 1




                                                                @Neyt Ah, fixed. My initial version with the array below didn't use var, which is why I usually put those at 8, and the ones that does use var as 10 (and the ones using String.repeat as 11). :) Forgot to update it after adding the List and String answers, should be corrected now. Thanks.
                                                                – Kevin Cruijssen
                                                                Nov 9 at 10:51















                                                              up vote
                                                              5
                                                              down vote










                                                              up vote
                                                              5
                                                              down vote









                                                              Java 10, 109 108 104 102 93 62 bytes





                                                              Using a space-delimited String:



                                                              b->a->{var r=a+" "+b;for(;a<b?++a<b:--a>b;)r+=" "+a;return r;}


                                                              Try it online.



                                                              Using a List:



                                                              b->a->{var r=new java.util.Stack();for(r.add(a),r.add(b);a<b?++a<b:--a>b;)r.add(a);return r;}


                                                              Try it online.



                                                              (a<b?++a<b:--a>b can be ++a<b||(a-=2)>b for the same byte-count: Try it online for the String or Try it online for the List.)





                                                              Old (109 108 104 102 101 bytes) answer using an array:



                                                              a->b->{int s=a<b?1:-1,i=a!=b?(b-a)*s+1:2,r=new int[i];for(r[0]=a,r[1]=b;i>2;)r[--i]=b-=s;return r;}


                                                              -7 bytes thanks to @nwellnhof.



                                                              Try it online.



                                                              Explanation:



                                                              a->b->{                // Method with 2 int parameters & int-array return-type
                                                              int s= // Step integer, starting at:
                                                              a<b?1 // 1 if the first input is smaller than the second
                                                              :-1; // -1 otherwise
                                                              i= // Array-index integer, starting at:
                                                              a!=b? // If the inputs aren't equal:
                                                              (b-a)*s+1 // Set it to the absolute difference + 1
                                                              : // Else:
                                                              2, // Set it to 2
                                                              r=new int[i]; // Result-array of that size
                                                              for(r[0]=a, // Fill the first value with the first input
                                                              r[1]=b; // And the second value with the second input
                                                              i>2;) // Loop `i` downwards in the range [`i`,2):
                                                              r[--i]= // Decrease `i` by 1 first with `--i`
                                                              // Set the `i`'th array-value to:
                                                              b-=s; // If the step integer is 1: decrease `b` by 1
                                                              // If the step integer is -1: increase `b` by 1
                                                              // And set the array-value to this modified `b`
                                                              return r;} // Return the result-array





                                                              share|improve this answer














                                                              Java 10, 109 108 104 102 93 62 bytes





                                                              Using a space-delimited String:



                                                              b->a->{var r=a+" "+b;for(;a<b?++a<b:--a>b;)r+=" "+a;return r;}


                                                              Try it online.



                                                              Using a List:



                                                              b->a->{var r=new java.util.Stack();for(r.add(a),r.add(b);a<b?++a<b:--a>b;)r.add(a);return r;}


                                                              Try it online.



                                                              (a<b?++a<b:--a>b can be ++a<b||(a-=2)>b for the same byte-count: Try it online for the String or Try it online for the List.)





                                                              Old (109 108 104 102 101 bytes) answer using an array:



                                                              a->b->{int s=a<b?1:-1,i=a!=b?(b-a)*s+1:2,r=new int[i];for(r[0]=a,r[1]=b;i>2;)r[--i]=b-=s;return r;}


                                                              -7 bytes thanks to @nwellnhof.



                                                              Try it online.



                                                              Explanation:



                                                              a->b->{                // Method with 2 int parameters & int-array return-type
                                                              int s= // Step integer, starting at:
                                                              a<b?1 // 1 if the first input is smaller than the second
                                                              :-1; // -1 otherwise
                                                              i= // Array-index integer, starting at:
                                                              a!=b? // If the inputs aren't equal:
                                                              (b-a)*s+1 // Set it to the absolute difference + 1
                                                              : // Else:
                                                              2, // Set it to 2
                                                              r=new int[i]; // Result-array of that size
                                                              for(r[0]=a, // Fill the first value with the first input
                                                              r[1]=b; // And the second value with the second input
                                                              i>2;) // Loop `i` downwards in the range [`i`,2):
                                                              r[--i]= // Decrease `i` by 1 first with `--i`
                                                              // Set the `i`'th array-value to:
                                                              b-=s; // If the step integer is 1: decrease `b` by 1
                                                              // If the step integer is -1: increase `b` by 1
                                                              // And set the array-value to this modified `b`
                                                              return r;} // Return the result-array






                                                              share|improve this answer














                                                              share|improve this answer



                                                              share|improve this answer








                                                              edited Nov 9 at 10:51

























                                                              answered Nov 8 at 10:06









                                                              Kevin Cruijssen

                                                              33.4k554178




                                                              33.4k554178












                                                              • Isn't there anything in Java's standard library for making ranges of integers? Or it is just too verbose to use?
                                                                – Οurous
                                                                Nov 8 at 11:17










                                                              • @Οurous It's indeed too verbose: a->b->{var L=java.util.stream.IntStream.range(a,b).boxed().collect(java.util.Collectors.toList());L.add(0,b);L.add(0,a);return L;} (130 bytes)
                                                                – Kevin Cruijssen
                                                                Nov 8 at 12:11










                                                              • Is it Java 8 or Java 10 ? Because of "var" ^^'
                                                                – Neyt
                                                                Nov 9 at 10:45






                                                              • 1




                                                                @Neyt Ah, fixed. My initial version with the array below didn't use var, which is why I usually put those at 8, and the ones that does use var as 10 (and the ones using String.repeat as 11). :) Forgot to update it after adding the List and String answers, should be corrected now. Thanks.
                                                                – Kevin Cruijssen
                                                                Nov 9 at 10:51




















                                                              • Isn't there anything in Java's standard library for making ranges of integers? Or it is just too verbose to use?
                                                                – Οurous
                                                                Nov 8 at 11:17










                                                              • @Οurous It's indeed too verbose: a->b->{var L=java.util.stream.IntStream.range(a,b).boxed().collect(java.util.Collectors.toList());L.add(0,b);L.add(0,a);return L;} (130 bytes)
                                                                – Kevin Cruijssen
                                                                Nov 8 at 12:11










                                                              • Is it Java 8 or Java 10 ? Because of "var" ^^'
                                                                – Neyt
                                                                Nov 9 at 10:45






                                                              • 1




                                                                @Neyt Ah, fixed. My initial version with the array below didn't use var, which is why I usually put those at 8, and the ones that does use var as 10 (and the ones using String.repeat as 11). :) Forgot to update it after adding the List and String answers, should be corrected now. Thanks.
                                                                – Kevin Cruijssen
                                                                Nov 9 at 10:51


















                                                              Isn't there anything in Java's standard library for making ranges of integers? Or it is just too verbose to use?
                                                              – Οurous
                                                              Nov 8 at 11:17




                                                              Isn't there anything in Java's standard library for making ranges of integers? Or it is just too verbose to use?
                                                              – Οurous
                                                              Nov 8 at 11:17












                                                              @Οurous It's indeed too verbose: a->b->{var L=java.util.stream.IntStream.range(a,b).boxed().collect(java.util.Collectors.toList());L.add(0,b);L.add(0,a);return L;} (130 bytes)
                                                              – Kevin Cruijssen
                                                              Nov 8 at 12:11




                                                              @Οurous It's indeed too verbose: a->b->{var L=java.util.stream.IntStream.range(a,b).boxed().collect(java.util.Collectors.toList());L.add(0,b);L.add(0,a);return L;} (130 bytes)
                                                              – Kevin Cruijssen
                                                              Nov 8 at 12:11












                                                              Is it Java 8 or Java 10 ? Because of "var" ^^'
                                                              – Neyt
                                                              Nov 9 at 10:45




                                                              Is it Java 8 or Java 10 ? Because of "var" ^^'
                                                              – Neyt
                                                              Nov 9 at 10:45




                                                              1




                                                              1




                                                              @Neyt Ah, fixed. My initial version with the array below didn't use var, which is why I usually put those at 8, and the ones that does use var as 10 (and the ones using String.repeat as 11). :) Forgot to update it after adding the List and String answers, should be corrected now. Thanks.
                                                              – Kevin Cruijssen
                                                              Nov 9 at 10:51






                                                              @Neyt Ah, fixed. My initial version with the array below didn't use var, which is why I usually put those at 8, and the ones that does use var as 10 (and the ones using String.repeat as 11). :) Forgot to update it after adding the List and String answers, should be corrected now. Thanks.
                                                              – Kevin Cruijssen
                                                              Nov 9 at 10:51












                                                              up vote
                                                              4
                                                              down vote













                                                              Haskell, 34 bytes



                                                              a#b=a:b:[a+1..b-1]++[a-1,a-2..b+1]


                                                              Try it online!






                                                              share|improve this answer





















                                                              • This does not work. GHC interprets b-1 as b $ (-1). Use b- 1 instead.
                                                                – Mark Neu
                                                                2 days ago










                                                              • @MarkNeu: it does work. See TIO link.
                                                                – nimi
                                                                2 days ago










                                                              • Oh, sorry! I had NegativeLiterals on.
                                                                – Mark Neu
                                                                2 days ago















                                                              up vote
                                                              4
                                                              down vote













                                                              Haskell, 34 bytes



                                                              a#b=a:b:[a+1..b-1]++[a-1,a-2..b+1]


                                                              Try it online!






                                                              share|improve this answer





















                                                              • This does not work. GHC interprets b-1 as b $ (-1). Use b- 1 instead.
                                                                – Mark Neu
                                                                2 days ago










                                                              • @MarkNeu: it does work. See TIO link.
                                                                – nimi
                                                                2 days ago










                                                              • Oh, sorry! I had NegativeLiterals on.
                                                                – Mark Neu
                                                                2 days ago













                                                              up vote
                                                              4
                                                              down vote










                                                              up vote
                                                              4
                                                              down vote









                                                              Haskell, 34 bytes



                                                              a#b=a:b:[a+1..b-1]++[a-1,a-2..b+1]


                                                              Try it online!






                                                              share|improve this answer












                                                              Haskell, 34 bytes



                                                              a#b=a:b:[a+1..b-1]++[a-1,a-2..b+1]


                                                              Try it online!







                                                              share|improve this answer












                                                              share|improve this answer



                                                              share|improve this answer










                                                              answered Nov 8 at 10:58









                                                              nimi

                                                              30.5k31985




                                                              30.5k31985












                                                              • This does not work. GHC interprets b-1 as b $ (-1). Use b- 1 instead.
                                                                – Mark Neu
                                                                2 days ago










                                                              • @MarkNeu: it does work. See TIO link.
                                                                – nimi
                                                                2 days ago










                                                              • Oh, sorry! I had NegativeLiterals on.
                                                                – Mark Neu
                                                                2 days ago


















                                                              • This does not work. GHC interprets b-1 as b $ (-1). Use b- 1 instead.
                                                                – Mark Neu
                                                                2 days ago










                                                              • @MarkNeu: it does work. See TIO link.
                                                                – nimi
                                                                2 days ago










                                                              • Oh, sorry! I had NegativeLiterals on.
                                                                – Mark Neu
                                                                2 days ago
















                                                              This does not work. GHC interprets b-1 as b $ (-1). Use b- 1 instead.
                                                              – Mark Neu
                                                              2 days ago




                                                              This does not work. GHC interprets b-1 as b $ (-1). Use b- 1 instead.
                                                              – Mark Neu
                                                              2 days ago












                                                              @MarkNeu: it does work. See TIO link.
                                                              – nimi
                                                              2 days ago




                                                              @MarkNeu: it does work. See TIO link.
                                                              – nimi
                                                              2 days ago












                                                              Oh, sorry! I had NegativeLiterals on.
                                                              – Mark Neu
                                                              2 days ago




                                                              Oh, sorry! I had NegativeLiterals on.
                                                              – Mark Neu
                                                              2 days ago










                                                              up vote
                                                              4
                                                              down vote














                                                              Jelly, 4 bytes



                                                              ,œ|r


                                                              Try it online!



                                                              How it works



                                                              ,œ|r  Main link. Left argument: a. Right argument: b

                                                              , Pair; yield [a, b].
                                                              r Range; yield [a, ..., b].
                                                              œ| Perform multiset union.





                                                              share|improve this answer

























                                                                up vote
                                                                4
                                                                down vote














                                                                Jelly, 4 bytes



                                                                ,œ|r


                                                                Try it online!



                                                                How it works



                                                                ,œ|r  Main link. Left argument: a. Right argument: b

                                                                , Pair; yield [a, b].
                                                                r Range; yield [a, ..., b].
                                                                œ| Perform multiset union.





                                                                share|improve this answer























                                                                  up vote
                                                                  4
                                                                  down vote










                                                                  up vote
                                                                  4
                                                                  down vote










                                                                  Jelly, 4 bytes



                                                                  ,œ|r


                                                                  Try it online!



                                                                  How it works



                                                                  ,œ|r  Main link. Left argument: a. Right argument: b

                                                                  , Pair; yield [a, b].
                                                                  r Range; yield [a, ..., b].
                                                                  œ| Perform multiset union.





                                                                  share|improve this answer













                                                                  Jelly, 4 bytes



                                                                  ,œ|r


                                                                  Try it online!



                                                                  How it works



                                                                  ,œ|r  Main link. Left argument: a. Right argument: b

                                                                  , Pair; yield [a, b].
                                                                  r Range; yield [a, ..., b].
                                                                  œ| Perform multiset union.






                                                                  share|improve this answer












                                                                  share|improve this answer



                                                                  share|improve this answer










                                                                  answered Nov 8 at 12:41









                                                                  Dennis

                                                                  183k32293727




                                                                  183k32293727






















                                                                      up vote
                                                                      4
                                                                      down vote














                                                                      J, 26 bytes



                                                                      ,,[|.@]^:(>{.)<.+1}.i.@|@-


                                                                      Try it online!



                                                                      Explanation:



                                                                      A dyadic verb (takes left and right argument)



                                                                                               -    subtracts the arguments
                                                                      |@ and finds the absolute value
                                                                      i.@ and makes a list 0..absolute difference
                                                                      1}. drops the fist element
                                                                      + adds to the entire list
                                                                      <. the smaller of the arguments
                                                                      |.@] reverses the list
                                                                      ^: only if
                                                                      [ the left argument
                                                                      (>{.) is greater than the first item of the list
                                                                      , appends the list to
                                                                      , the right argument appended to the left one





                                                                      share|improve this answer



















                                                                      • 1




                                                                        ,,[:}.@}:<.+i.@-@(+*)@- for 23 bytes and no special casing on relative argument ordering (rather: it's hidden inside the signum *). i feel like this could get down under 20 but i'm tired.
                                                                        – Jonah
                                                                        2 days ago












                                                                      • @Jonah Thank you! Btw FrownyFrog's solution is way better than mine, so I 'm not going to golf it any further.
                                                                        – Galen Ivanov
                                                                        2 days ago















                                                                      up vote
                                                                      4
                                                                      down vote














                                                                      J, 26 bytes



                                                                      ,,[|.@]^:(>{.)<.+1}.i.@|@-


                                                                      Try it online!



                                                                      Explanation:



                                                                      A dyadic verb (takes left and right argument)



                                                                                               -    subtracts the arguments
                                                                      |@ and finds the absolute value
                                                                      i.@ and makes a list 0..absolute difference
                                                                      1}. drops the fist element
                                                                      + adds to the entire list
                                                                      <. the smaller of the arguments
                                                                      |.@] reverses the list
                                                                      ^: only if
                                                                      [ the left argument
                                                                      (>{.) is greater than the first item of the list
                                                                      , appends the list to
                                                                      , the right argument appended to the left one





                                                                      share|improve this answer



















                                                                      • 1




                                                                        ,,[:}.@}:<.+i.@-@(+*)@- for 23 bytes and no special casing on relative argument ordering (rather: it's hidden inside the signum *). i feel like this could get down under 20 but i'm tired.
                                                                        – Jonah
                                                                        2 days ago












                                                                      • @Jonah Thank you! Btw FrownyFrog's solution is way better than mine, so I 'm not going to golf it any further.
                                                                        – Galen Ivanov
                                                                        2 days ago













                                                                      up vote
                                                                      4
                                                                      down vote










                                                                      up vote
                                                                      4
                                                                      down vote










                                                                      J, 26 bytes



                                                                      ,,[|.@]^:(>{.)<.+1}.i.@|@-


                                                                      Try it online!



                                                                      Explanation:



                                                                      A dyadic verb (takes left and right argument)



                                                                                               -    subtracts the arguments
                                                                      |@ and finds the absolute value
                                                                      i.@ and makes a list 0..absolute difference
                                                                      1}. drops the fist element
                                                                      + adds to the entire list
                                                                      <. the smaller of the arguments
                                                                      |.@] reverses the list
                                                                      ^: only if
                                                                      [ the left argument
                                                                      (>{.) is greater than the first item of the list
                                                                      , appends the list to
                                                                      , the right argument appended to the left one





                                                                      share|improve this answer















                                                                      J, 26 bytes



                                                                      ,,[|.@]^:(>{.)<.+1}.i.@|@-


                                                                      Try it online!



                                                                      Explanation:



                                                                      A dyadic verb (takes left and right argument)



                                                                                               -    subtracts the arguments
                                                                      |@ and finds the absolute value
                                                                      i.@ and makes a list 0..absolute difference
                                                                      1}. drops the fist element
                                                                      + adds to the entire list
                                                                      <. the smaller of the arguments
                                                                      |.@] reverses the list
                                                                      ^: only if
                                                                      [ the left argument
                                                                      (>{.) is greater than the first item of the list
                                                                      , appends the list to
                                                                      , the right argument appended to the left one






                                                                      share|improve this answer














                                                                      share|improve this answer



                                                                      share|improve this answer








                                                                      edited Nov 8 at 13:10

























                                                                      answered Nov 8 at 12:58









                                                                      Galen Ivanov

                                                                      5,76211032




                                                                      5,76211032








                                                                      • 1




                                                                        ,,[:}.@}:<.+i.@-@(+*)@- for 23 bytes and no special casing on relative argument ordering (rather: it's hidden inside the signum *). i feel like this could get down under 20 but i'm tired.
                                                                        – Jonah
                                                                        2 days ago












                                                                      • @Jonah Thank you! Btw FrownyFrog's solution is way better than mine, so I 'm not going to golf it any further.
                                                                        – Galen Ivanov
                                                                        2 days ago














                                                                      • 1




                                                                        ,,[:}.@}:<.+i.@-@(+*)@- for 23 bytes and no special casing on relative argument ordering (rather: it's hidden inside the signum *). i feel like this could get down under 20 but i'm tired.
                                                                        – Jonah
                                                                        2 days ago












                                                                      • @Jonah Thank you! Btw FrownyFrog's solution is way better than mine, so I 'm not going to golf it any further.
                                                                        – Galen Ivanov
                                                                        2 days ago








                                                                      1




                                                                      1




                                                                      ,,[:}.@}:<.+i.@-@(+*)@- for 23 bytes and no special casing on relative argument ordering (rather: it's hidden inside the signum *). i feel like this could get down under 20 but i'm tired.
                                                                      – Jonah
                                                                      2 days ago






                                                                      ,,[:}.@}:<.+i.@-@(+*)@- for 23 bytes and no special casing on relative argument ordering (rather: it's hidden inside the signum *). i feel like this could get down under 20 but i'm tired.
                                                                      – Jonah
                                                                      2 days ago














                                                                      @Jonah Thank you! Btw FrownyFrog's solution is way better than mine, so I 'm not going to golf it any further.
                                                                      – Galen Ivanov
                                                                      2 days ago




                                                                      @Jonah Thank you! Btw FrownyFrog's solution is way better than mine, so I 'm not going to golf it any further.
                                                                      – Galen Ivanov
                                                                      2 days ago










                                                                      up vote
                                                                      4
                                                                      down vote














                                                                      Octave, 45 bytes





                                                                      @(a,b)[a b linspace(a,b,(t=abs(a-b))+1)(2:t)]


                                                                      Try it online!






                                                                      share|improve this answer























                                                                      • IF the first is larger than the second, the range must be descending
                                                                        – TFeld
                                                                        Nov 8 at 11:03










                                                                      • Oh man, I can't read
                                                                        – Luis Mendo
                                                                        Nov 8 at 11:03










                                                                      • I ended up changing the language
                                                                        – Luis Mendo
                                                                        Nov 8 at 14:33















                                                                      up vote
                                                                      4
                                                                      down vote














                                                                      Octave, 45 bytes





                                                                      @(a,b)[a b linspace(a,b,(t=abs(a-b))+1)(2:t)]


                                                                      Try it online!






                                                                      share|improve this answer























                                                                      • IF the first is larger than the second, the range must be descending
                                                                        – TFeld
                                                                        Nov 8 at 11:03










                                                                      • Oh man, I can't read
                                                                        – Luis Mendo
                                                                        Nov 8 at 11:03










                                                                      • I ended up changing the language
                                                                        – Luis Mendo
                                                                        Nov 8 at 14:33













                                                                      up vote
                                                                      4
                                                                      down vote










                                                                      up vote
                                                                      4
                                                                      down vote










                                                                      Octave, 45 bytes





                                                                      @(a,b)[a b linspace(a,b,(t=abs(a-b))+1)(2:t)]


                                                                      Try it online!






                                                                      share|improve this answer















                                                                      Octave, 45 bytes





                                                                      @(a,b)[a b linspace(a,b,(t=abs(a-b))+1)(2:t)]


                                                                      Try it online!







                                                                      share|improve this answer














                                                                      share|improve this answer



                                                                      share|improve this answer








                                                                      edited Nov 8 at 14:33

























                                                                      answered Nov 8 at 10:49









                                                                      Luis Mendo

                                                                      73.6k885289




                                                                      73.6k885289












                                                                      • IF the first is larger than the second, the range must be descending
                                                                        – TFeld
                                                                        Nov 8 at 11:03










                                                                      • Oh man, I can't read
                                                                        – Luis Mendo
                                                                        Nov 8 at 11:03










                                                                      • I ended up changing the language
                                                                        – Luis Mendo
                                                                        Nov 8 at 14:33


















                                                                      • IF the first is larger than the second, the range must be descending
                                                                        – TFeld
                                                                        Nov 8 at 11:03










                                                                      • Oh man, I can't read
                                                                        – Luis Mendo
                                                                        Nov 8 at 11:03










                                                                      • I ended up changing the language
                                                                        – Luis Mendo
                                                                        Nov 8 at 14:33
















                                                                      IF the first is larger than the second, the range must be descending
                                                                      – TFeld
                                                                      Nov 8 at 11:03




                                                                      IF the first is larger than the second, the range must be descending
                                                                      – TFeld
                                                                      Nov 8 at 11:03












                                                                      Oh man, I can't read
                                                                      – Luis Mendo
                                                                      Nov 8 at 11:03




                                                                      Oh man, I can't read
                                                                      – Luis Mendo
                                                                      Nov 8 at 11:03












                                                                      I ended up changing the language
                                                                      – Luis Mendo
                                                                      Nov 8 at 14:33




                                                                      I ended up changing the language
                                                                      – Luis Mendo
                                                                      Nov 8 at 14:33










                                                                      up vote
                                                                      4
                                                                      down vote














                                                                      J, 13 bytes



                                                                      ,,<.+i.@-~-.=


                                                                      Try it online!



                                                                           i.@-~       range [0 .. |difference|-1], reverse if the difference is positive
                                                                      -.= remove the zero (either "=" is 0 or there’s nothing to remove)
                                                                      <.+ to each element add the smaller of the args
                                                                      ,, prepend args





                                                                      share|improve this answer





















                                                                      • Nice solution! I totally forgot abouti. with negative argument.
                                                                        – Galen Ivanov
                                                                        Nov 8 at 17:40






                                                                      • 1




                                                                        this is gorgeous!
                                                                        – Jonah
                                                                        2 days ago















                                                                      up vote
                                                                      4
                                                                      down vote














                                                                      J, 13 bytes



                                                                      ,,<.+i.@-~-.=


                                                                      Try it online!



                                                                           i.@-~       range [0 .. |difference|-1], reverse if the difference is positive
                                                                      -.= remove the zero (either "=" is 0 or there’s nothing to remove)
                                                                      <.+ to each element add the smaller of the args
                                                                      ,, prepend args





                                                                      share|improve this answer





















                                                                      • Nice solution! I totally forgot abouti. with negative argument.
                                                                        – Galen Ivanov
                                                                        Nov 8 at 17:40






                                                                      • 1




                                                                        this is gorgeous!
                                                                        – Jonah
                                                                        2 days ago













                                                                      up vote
                                                                      4
                                                                      down vote










                                                                      up vote
                                                                      4
                                                                      down vote










                                                                      J, 13 bytes



                                                                      ,,<.+i.@-~-.=


                                                                      Try it online!



                                                                           i.@-~       range [0 .. |difference|-1], reverse if the difference is positive
                                                                      -.= remove the zero (either "=" is 0 or there’s nothing to remove)
                                                                      <.+ to each element add the smaller of the args
                                                                      ,, prepend args





                                                                      share|improve this answer













                                                                      J, 13 bytes



                                                                      ,,<.+i.@-~-.=


                                                                      Try it online!



                                                                           i.@-~       range [0 .. |difference|-1], reverse if the difference is positive
                                                                      -.= remove the zero (either "=" is 0 or there’s nothing to remove)
                                                                      <.+ to each element add the smaller of the args
                                                                      ,, prepend args






                                                                      share|improve this answer












                                                                      share|improve this answer



                                                                      share|improve this answer










                                                                      answered Nov 8 at 15:24









                                                                      FrownyFrog

                                                                      2,2771518




                                                                      2,2771518












                                                                      • Nice solution! I totally forgot abouti. with negative argument.
                                                                        – Galen Ivanov
                                                                        Nov 8 at 17:40






                                                                      • 1




                                                                        this is gorgeous!
                                                                        – Jonah
                                                                        2 days ago


















                                                                      • Nice solution! I totally forgot abouti. with negative argument.
                                                                        – Galen Ivanov
                                                                        Nov 8 at 17:40






                                                                      • 1




                                                                        this is gorgeous!
                                                                        – Jonah
                                                                        2 days ago
















                                                                      Nice solution! I totally forgot abouti. with negative argument.
                                                                      – Galen Ivanov
                                                                      Nov 8 at 17:40




                                                                      Nice solution! I totally forgot abouti. with negative argument.
                                                                      – Galen Ivanov
                                                                      Nov 8 at 17:40




                                                                      1




                                                                      1




                                                                      this is gorgeous!
                                                                      – Jonah
                                                                      2 days ago




                                                                      this is gorgeous!
                                                                      – Jonah
                                                                      2 days ago










                                                                      up vote
                                                                      3
                                                                      down vote













                                                                      Batch, 107 bytes



                                                                      @echo %1
                                                                      @echo %2
                                                                      @for %%s in (1 -1)do @for /l %%i in (%1,%%s,%2)do @if %1 neq %%i if %%i neq %2 echo %%i


                                                                      Takes input as command-line arguments. Explanation:



                                                                      @echo %1
                                                                      @echo %2


                                                                      Output the two integers.



                                                                      @for %%s in (1 -1)do


                                                                      Try both ascending and descending ranges.



                                                                      @for /l %%i in (%1,%%s,%2)do


                                                                      Loop over the inclusive range.



                                                                      @if %1 neq %%i if %%i neq %2


                                                                      Exclude the two integers.



                                                                      echo %%i


                                                                      Output the current value.






                                                                      share|improve this answer

























                                                                        up vote
                                                                        3
                                                                        down vote













                                                                        Batch, 107 bytes



                                                                        @echo %1
                                                                        @echo %2
                                                                        @for %%s in (1 -1)do @for /l %%i in (%1,%%s,%2)do @if %1 neq %%i if %%i neq %2 echo %%i


                                                                        Takes input as command-line arguments. Explanation:



                                                                        @echo %1
                                                                        @echo %2


                                                                        Output the two integers.



                                                                        @for %%s in (1 -1)do


                                                                        Try both ascending and descending ranges.



                                                                        @for /l %%i in (%1,%%s,%2)do


                                                                        Loop over the inclusive range.



                                                                        @if %1 neq %%i if %%i neq %2


                                                                        Exclude the two integers.



                                                                        echo %%i


                                                                        Output the current value.






                                                                        share|improve this answer























                                                                          up vote
                                                                          3
                                                                          down vote










                                                                          up vote
                                                                          3
                                                                          down vote









                                                                          Batch, 107 bytes



                                                                          @echo %1
                                                                          @echo %2
                                                                          @for %%s in (1 -1)do @for /l %%i in (%1,%%s,%2)do @if %1 neq %%i if %%i neq %2 echo %%i


                                                                          Takes input as command-line arguments. Explanation:



                                                                          @echo %1
                                                                          @echo %2


                                                                          Output the two integers.



                                                                          @for %%s in (1 -1)do


                                                                          Try both ascending and descending ranges.



                                                                          @for /l %%i in (%1,%%s,%2)do


                                                                          Loop over the inclusive range.



                                                                          @if %1 neq %%i if %%i neq %2


                                                                          Exclude the two integers.



                                                                          echo %%i


                                                                          Output the current value.






                                                                          share|improve this answer












                                                                          Batch, 107 bytes



                                                                          @echo %1
                                                                          @echo %2
                                                                          @for %%s in (1 -1)do @for /l %%i in (%1,%%s,%2)do @if %1 neq %%i if %%i neq %2 echo %%i


                                                                          Takes input as command-line arguments. Explanation:



                                                                          @echo %1
                                                                          @echo %2


                                                                          Output the two integers.



                                                                          @for %%s in (1 -1)do


                                                                          Try both ascending and descending ranges.



                                                                          @for /l %%i in (%1,%%s,%2)do


                                                                          Loop over the inclusive range.



                                                                          @if %1 neq %%i if %%i neq %2


                                                                          Exclude the two integers.



                                                                          echo %%i


                                                                          Output the current value.







                                                                          share|improve this answer












                                                                          share|improve this answer



                                                                          share|improve this answer










                                                                          answered Nov 8 at 9:54









                                                                          Neil

                                                                          77.6k744174




                                                                          77.6k744174






















                                                                              up vote
                                                                              3
                                                                              down vote














                                                                              Pyth, 5 bytes



                                                                              +QtrF


                                                                              Input is a two-element list, [input 1, input 2]. Try it online here, or verify all the test cases at once here.



                                                                              +QtrFQ   Implicit: Q=eval(input())
                                                                              Trailing Q inferred
                                                                              rFQ Generate range [input 1 - input 2)
                                                                              t Discard first element
                                                                              +Q Prepend Q





                                                                              share|improve this answer





















                                                                              • Using F instead of .* on 2-element lists is a brilliant trick that I will absolutely be using from here on.
                                                                                – hakr14
                                                                                Nov 8 at 16:31















                                                                              up vote
                                                                              3
                                                                              down vote














                                                                              Pyth, 5 bytes



                                                                              +QtrF


                                                                              Input is a two-element list, [input 1, input 2]. Try it online here, or verify all the test cases at once here.



                                                                              +QtrFQ   Implicit: Q=eval(input())
                                                                              Trailing Q inferred
                                                                              rFQ Generate range [input 1 - input 2)
                                                                              t Discard first element
                                                                              +Q Prepend Q





                                                                              share|improve this answer





















                                                                              • Using F instead of .* on 2-element lists is a brilliant trick that I will absolutely be using from here on.
                                                                                – hakr14
                                                                                Nov 8 at 16:31













                                                                              up vote
                                                                              3
                                                                              down vote










                                                                              up vote
                                                                              3
                                                                              down vote










                                                                              Pyth, 5 bytes



                                                                              +QtrF


                                                                              Input is a two-element list, [input 1, input 2]. Try it online here, or verify all the test cases at once here.



                                                                              +QtrFQ   Implicit: Q=eval(input())
                                                                              Trailing Q inferred
                                                                              rFQ Generate range [input 1 - input 2)
                                                                              t Discard first element
                                                                              +Q Prepend Q





                                                                              share|improve this answer













                                                                              Pyth, 5 bytes



                                                                              +QtrF


                                                                              Input is a two-element list, [input 1, input 2]. Try it online here, or verify all the test cases at once here.



                                                                              +QtrFQ   Implicit: Q=eval(input())
                                                                              Trailing Q inferred
                                                                              rFQ Generate range [input 1 - input 2)
                                                                              t Discard first element
                                                                              +Q Prepend Q






                                                                              share|improve this answer












                                                                              share|improve this answer



                                                                              share|improve this answer










                                                                              answered Nov 8 at 10:23









                                                                              Sok

                                                                              3,309722




                                                                              3,309722












                                                                              • Using F instead of .* on 2-element lists is a brilliant trick that I will absolutely be using from here on.
                                                                                – hakr14
                                                                                Nov 8 at 16:31


















                                                                              • Using F instead of .* on 2-element lists is a brilliant trick that I will absolutely be using from here on.
                                                                                – hakr14
                                                                                Nov 8 at 16:31
















                                                                              Using F instead of .* on 2-element lists is a brilliant trick that I will absolutely be using from here on.
                                                                              – hakr14
                                                                              Nov 8 at 16:31




                                                                              Using F instead of .* on 2-element lists is a brilliant trick that I will absolutely be using from here on.
                                                                              – hakr14
                                                                              Nov 8 at 16:31










                                                                              up vote
                                                                              3
                                                                              down vote














                                                                              Red, 75 bytes



                                                                              func[a b][s: sign? d: b - a prin[a b]loop absolute d - s[prin[""a: a + s]]]


                                                                              Try it online!






                                                                              share|improve this answer

























                                                                                up vote
                                                                                3
                                                                                down vote














                                                                                Red, 75 bytes



                                                                                func[a b][s: sign? d: b - a prin[a b]loop absolute d - s[prin[""a: a + s]]]


                                                                                Try it online!






                                                                                share|improve this answer























                                                                                  up vote
                                                                                  3
                                                                                  down vote










                                                                                  up vote
                                                                                  3
                                                                                  down vote










                                                                                  Red, 75 bytes



                                                                                  func[a b][s: sign? d: b - a prin[a b]loop absolute d - s[prin[""a: a + s]]]


                                                                                  Try it online!






                                                                                  share|improve this answer













                                                                                  Red, 75 bytes



                                                                                  func[a b][s: sign? d: b - a prin[a b]loop absolute d - s[prin[""a: a + s]]]


                                                                                  Try it online!







                                                                                  share|improve this answer












                                                                                  share|improve this answer



                                                                                  share|improve this answer










                                                                                  answered Nov 8 at 10:25









                                                                                  Galen Ivanov

                                                                                  5,76211032




                                                                                  5,76211032






















                                                                                      up vote
                                                                                      3
                                                                                      down vote














                                                                                      Clean, 49 bytes



                                                                                      import StdEnv
                                                                                      @a b=init[a,b:tl[a,a+sign(b-a)..b]]


                                                                                      Try it online!






                                                                                      share|improve this answer

























                                                                                        up vote
                                                                                        3
                                                                                        down vote














                                                                                        Clean, 49 bytes



                                                                                        import StdEnv
                                                                                        @a b=init[a,b:tl[a,a+sign(b-a)..b]]


                                                                                        Try it online!






                                                                                        share|improve this answer























                                                                                          up vote
                                                                                          3
                                                                                          down vote










                                                                                          up vote
                                                                                          3
                                                                                          down vote










                                                                                          Clean, 49 bytes



                                                                                          import StdEnv
                                                                                          @a b=init[a,b:tl[a,a+sign(b-a)..b]]


                                                                                          Try it online!






                                                                                          share|improve this answer













                                                                                          Clean, 49 bytes



                                                                                          import StdEnv
                                                                                          @a b=init[a,b:tl[a,a+sign(b-a)..b]]


                                                                                          Try it online!







                                                                                          share|improve this answer












                                                                                          share|improve this answer



                                                                                          share|improve this answer










                                                                                          answered Nov 8 at 11:15









                                                                                          Οurous

                                                                                          5,76311031




                                                                                          5,76311031






















                                                                                              up vote
                                                                                              3
                                                                                              down vote














                                                                                              Python 2, 52 47 41 bytes





                                                                                              lambda i,j:[i,j]+range(i,j,(i<j)*2-1)[1:]


                                                                                              Try it online!



                                                                                              -5 with thanks to @JoKing



                                                                                              -6 by slicing the first element from the range (idea stolen from and with credit to @TFeld)



                                                                                              Non-lambda version...




                                                                                              Python 2, 51 49 47 bytes





                                                                                              i,j=input();print[i,j]+range(i,j,(i<j)*2-1)[1:]


                                                                                              Try it online!



                                                                                              -2 with thanks to @JoKing






                                                                                              share|improve this answer



























                                                                                                up vote
                                                                                                3
                                                                                                down vote














                                                                                                Python 2, 52 47 41 bytes





                                                                                                lambda i,j:[i,j]+range(i,j,(i<j)*2-1)[1:]


                                                                                                Try it online!



                                                                                                -5 with thanks to @JoKing



                                                                                                -6 by slicing the first element from the range (idea stolen from and with credit to @TFeld)



                                                                                                Non-lambda version...




                                                                                                Python 2, 51 49 47 bytes





                                                                                                i,j=input();print[i,j]+range(i,j,(i<j)*2-1)[1:]


                                                                                                Try it online!



                                                                                                -2 with thanks to @JoKing






                                                                                                share|improve this answer

























                                                                                                  up vote
                                                                                                  3
                                                                                                  down vote










                                                                                                  up vote
                                                                                                  3
                                                                                                  down vote










                                                                                                  Python 2, 52 47 41 bytes





                                                                                                  lambda i,j:[i,j]+range(i,j,(i<j)*2-1)[1:]


                                                                                                  Try it online!



                                                                                                  -5 with thanks to @JoKing



                                                                                                  -6 by slicing the first element from the range (idea stolen from and with credit to @TFeld)



                                                                                                  Non-lambda version...




                                                                                                  Python 2, 51 49 47 bytes





                                                                                                  i,j=input();print[i,j]+range(i,j,(i<j)*2-1)[1:]


                                                                                                  Try it online!



                                                                                                  -2 with thanks to @JoKing






                                                                                                  share|improve this answer















                                                                                                  Python 2, 52 47 41 bytes





                                                                                                  lambda i,j:[i,j]+range(i,j,(i<j)*2-1)[1:]


                                                                                                  Try it online!



                                                                                                  -5 with thanks to @JoKing



                                                                                                  -6 by slicing the first element from the range (idea stolen from and with credit to @TFeld)



                                                                                                  Non-lambda version...




                                                                                                  Python 2, 51 49 47 bytes





                                                                                                  i,j=input();print[i,j]+range(i,j,(i<j)*2-1)[1:]


                                                                                                  Try it online!



                                                                                                  -2 with thanks to @JoKing







                                                                                                  share|improve this answer














                                                                                                  share|improve this answer



                                                                                                  share|improve this answer








                                                                                                  edited Nov 8 at 13:05

























                                                                                                  answered Nov 8 at 10:22









                                                                                                  ElPedro

                                                                                                  3,4131023




                                                                                                  3,4131023






















                                                                                                      up vote
                                                                                                      3
                                                                                                      down vote














                                                                                                      APL (Dyalog Classic), 29 bytes





                                                                                                      {⍺,⍵,(⌽⍣(⍺>⍵))(⍺⌊⍵)+¯1↓⍳|⍺-⍵}


                                                                                                      Try it online!



                                                                                                      A port of my J solution






                                                                                                      share|improve this answer





















                                                                                                      • Wow, I'm surprised this is so long for a seemingly simple task.
                                                                                                        – Quintec
                                                                                                        Nov 9 at 0:43










                                                                                                      • @Quintec Probably it can be golfed, or maybe another algorithm will result in much shorter solution.
                                                                                                        – Galen Ivanov
                                                                                                        Nov 9 at 4:35















                                                                                                      up vote
                                                                                                      3
                                                                                                      down vote














                                                                                                      APL (Dyalog Classic), 29 bytes





                                                                                                      {⍺,⍵,(⌽⍣(⍺>⍵))(⍺⌊⍵)+¯1↓⍳|⍺-⍵}


                                                                                                      Try it online!



                                                                                                      A port of my J solution






                                                                                                      share|improve this answer





















                                                                                                      • Wow, I'm surprised this is so long for a seemingly simple task.
                                                                                                        – Quintec
                                                                                                        Nov 9 at 0:43










                                                                                                      • @Quintec Probably it can be golfed, or maybe another algorithm will result in much shorter solution.
                                                                                                        – Galen Ivanov
                                                                                                        Nov 9 at 4:35













                                                                                                      up vote
                                                                                                      3
                                                                                                      down vote










                                                                                                      up vote
                                                                                                      3
                                                                                                      down vote










                                                                                                      APL (Dyalog Classic), 29 bytes





                                                                                                      {⍺,⍵,(⌽⍣(⍺>⍵))(⍺⌊⍵)+¯1↓⍳|⍺-⍵}


                                                                                                      Try it online!



                                                                                                      A port of my J solution






                                                                                                      share|improve this answer













                                                                                                      APL (Dyalog Classic), 29 bytes





                                                                                                      {⍺,⍵,(⌽⍣(⍺>⍵))(⍺⌊⍵)+¯1↓⍳|⍺-⍵}


                                                                                                      Try it online!



                                                                                                      A port of my J solution







                                                                                                      share|improve this answer












                                                                                                      share|improve this answer



                                                                                                      share|improve this answer










                                                                                                      answered Nov 8 at 14:10









                                                                                                      Galen Ivanov

                                                                                                      5,76211032




                                                                                                      5,76211032












                                                                                                      • Wow, I'm surprised this is so long for a seemingly simple task.
                                                                                                        – Quintec
                                                                                                        Nov 9 at 0:43










                                                                                                      • @Quintec Probably it can be golfed, or maybe another algorithm will result in much shorter solution.
                                                                                                        – Galen Ivanov
                                                                                                        Nov 9 at 4:35


















                                                                                                      • Wow, I'm surprised this is so long for a seemingly simple task.
                                                                                                        – Quintec
                                                                                                        Nov 9 at 0:43










                                                                                                      • @Quintec Probably it can be golfed, or maybe another algorithm will result in much shorter solution.
                                                                                                        – Galen Ivanov
                                                                                                        Nov 9 at 4:35
















                                                                                                      Wow, I'm surprised this is so long for a seemingly simple task.
                                                                                                      – Quintec
                                                                                                      Nov 9 at 0:43




                                                                                                      Wow, I'm surprised this is so long for a seemingly simple task.
                                                                                                      – Quintec
                                                                                                      Nov 9 at 0:43












                                                                                                      @Quintec Probably it can be golfed, or maybe another algorithm will result in much shorter solution.
                                                                                                      – Galen Ivanov
                                                                                                      Nov 9 at 4:35




                                                                                                      @Quintec Probably it can be golfed, or maybe another algorithm will result in much shorter solution.
                                                                                                      – Galen Ivanov
                                                                                                      Nov 9 at 4:35










                                                                                                      up vote
                                                                                                      3
                                                                                                      down vote













                                                                                                      PHP (102 bytes)



                                                                                                      function t($a,$b){count($r=range($a,$b))>1?array_splice($r,1,0,array_pop($r)):$r=[$a,$b];print_r($r);}


                                                                                                      Sandbox



                                                                                                      Unfortunately (for golf) PHP has rather verbose function names, which contribute a lot to the length. But the basic idea is to create a range, then pop off the last element and stitch it back in at offset 1. For the 4,4 example I had to add count($r=range($a,$b))>1?...:$r=[$a,$b]; which adds quite a bit, and unfortunately array_splice() is by reference which hit me for a few more bytes ($r= and a ;). All because of that "edge case", lol.



                                                                                                      Well anyway enjoy!






                                                                                                      share|improve this answer























                                                                                                      • I dont think that this is a right approach for code golf. Check this one function t($a,$b){$o=array($a,$b);for($i=$a+1;$i<$b;$i++)$o=$i;print_r($o);}
                                                                                                        – th3pirat3
                                                                                                        2 days ago












                                                                                                      • Or something like this function t($a,$b){echo $a.$b;for($i=$a+1;$i<$b;$i++)echo $i};
                                                                                                        – th3pirat3
                                                                                                        2 days ago








                                                                                                      • 1




                                                                                                        It has to be a function and it has to output an array. If you have a better answer your more then welcome to post it.
                                                                                                        – ArtisticPhoenix
                                                                                                        2 days ago












                                                                                                      • I edited it, is that a valid submission now? Shall I put it as a new answer or what?
                                                                                                        – th3pirat3
                                                                                                        2 days ago










                                                                                                      • That is entirely up to you, I just wanted to do it without a loop ... lol
                                                                                                        – ArtisticPhoenix
                                                                                                        2 days ago















                                                                                                      up vote
                                                                                                      3
                                                                                                      down vote













                                                                                                      PHP (102 bytes)



                                                                                                      function t($a,$b){count($r=range($a,$b))>1?array_splice($r,1,0,array_pop($r)):$r=[$a,$b];print_r($r);}


                                                                                                      Sandbox



                                                                                                      Unfortunately (for golf) PHP has rather verbose function names, which contribute a lot to the length. But the basic idea is to create a range, then pop off the last element and stitch it back in at offset 1. For the 4,4 example I had to add count($r=range($a,$b))>1?...:$r=[$a,$b]; which adds quite a bit, and unfortunately array_splice() is by reference which hit me for a few more bytes ($r= and a ;). All because of that "edge case", lol.



                                                                                                      Well anyway enjoy!






                                                                                                      share|improve this answer























                                                                                                      • I dont think that this is a right approach for code golf. Check this one function t($a,$b){$o=array($a,$b);for($i=$a+1;$i<$b;$i++)$o=$i;print_r($o);}
                                                                                                        – th3pirat3
                                                                                                        2 days ago












                                                                                                      • Or something like this function t($a,$b){echo $a.$b;for($i=$a+1;$i<$b;$i++)echo $i};
                                                                                                        – th3pirat3
                                                                                                        2 days ago








                                                                                                      • 1




                                                                                                        It has to be a function and it has to output an array. If you have a better answer your more then welcome to post it.
                                                                                                        – ArtisticPhoenix
                                                                                                        2 days ago












                                                                                                      • I edited it, is that a valid submission now? Shall I put it as a new answer or what?
                                                                                                        – th3pirat3
                                                                                                        2 days ago










                                                                                                      • That is entirely up to you, I just wanted to do it without a loop ... lol
                                                                                                        – ArtisticPhoenix
                                                                                                        2 days ago













                                                                                                      up vote
                                                                                                      3
                                                                                                      down vote










                                                                                                      up vote
                                                                                                      3
                                                                                                      down vote









                                                                                                      PHP (102 bytes)



                                                                                                      function t($a,$b){count($r=range($a,$b))>1?array_splice($r,1,0,array_pop($r)):$r=[$a,$b];print_r($r);}


                                                                                                      Sandbox



                                                                                                      Unfortunately (for golf) PHP has rather verbose function names, which contribute a lot to the length. But the basic idea is to create a range, then pop off the last element and stitch it back in at offset 1. For the 4,4 example I had to add count($r=range($a,$b))>1?...:$r=[$a,$b]; which adds quite a bit, and unfortunately array_splice() is by reference which hit me for a few more bytes ($r= and a ;). All because of that "edge case", lol.



                                                                                                      Well anyway enjoy!






                                                                                                      share|improve this answer














                                                                                                      PHP (102 bytes)



                                                                                                      function t($a,$b){count($r=range($a,$b))>1?array_splice($r,1,0,array_pop($r)):$r=[$a,$b];print_r($r);}


                                                                                                      Sandbox



                                                                                                      Unfortunately (for golf) PHP has rather verbose function names, which contribute a lot to the length. But the basic idea is to create a range, then pop off the last element and stitch it back in at offset 1. For the 4,4 example I had to add count($r=range($a,$b))>1?...:$r=[$a,$b]; which adds quite a bit, and unfortunately array_splice() is by reference which hit me for a few more bytes ($r= and a ;). All because of that "edge case", lol.



                                                                                                      Well anyway enjoy!







                                                                                                      share|improve this answer














                                                                                                      share|improve this answer



                                                                                                      share|improve this answer








                                                                                                      edited Nov 8 at 20:13

























                                                                                                      answered Nov 8 at 20:04









                                                                                                      ArtisticPhoenix

                                                                                                      3396




                                                                                                      3396












                                                                                                      • I dont think that this is a right approach for code golf. Check this one function t($a,$b){$o=array($a,$b);for($i=$a+1;$i<$b;$i++)$o=$i;print_r($o);}
                                                                                                        – th3pirat3
                                                                                                        2 days ago












                                                                                                      • Or something like this function t($a,$b){echo $a.$b;for($i=$a+1;$i<$b;$i++)echo $i};
                                                                                                        – th3pirat3
                                                                                                        2 days ago








                                                                                                      • 1




                                                                                                        It has to be a function and it has to output an array. If you have a better answer your more then welcome to post it.
                                                                                                        – ArtisticPhoenix
                                                                                                        2 days ago












                                                                                                      • I edited it, is that a valid submission now? Shall I put it as a new answer or what?
                                                                                                        – th3pirat3
                                                                                                        2 days ago










                                                                                                      • That is entirely up to you, I just wanted to do it without a loop ... lol
                                                                                                        – ArtisticPhoenix
                                                                                                        2 days ago


















                                                                                                      • I dont think that this is a right approach for code golf. Check this one function t($a,$b){$o=array($a,$b);for($i=$a+1;$i<$b;$i++)$o=$i;print_r($o);}
                                                                                                        – th3pirat3
                                                                                                        2 days ago












                                                                                                      • Or something like this function t($a,$b){echo $a.$b;for($i=$a+1;$i<$b;$i++)echo $i};
                                                                                                        – th3pirat3
                                                                                                        2 days ago








                                                                                                      • 1




                                                                                                        It has to be a function and it has to output an array. If you have a better answer your more then welcome to post it.
                                                                                                        – ArtisticPhoenix
                                                                                                        2 days ago












                                                                                                      • I edited it, is that a valid submission now? Shall I put it as a new answer or what?
                                                                                                        – th3pirat3
                                                                                                        2 days ago










                                                                                                      • That is entirely up to you, I just wanted to do it without a loop ... lol
                                                                                                        – ArtisticPhoenix
                                                                                                        2 days ago
















                                                                                                      I dont think that this is a right approach for code golf. Check this one function t($a,$b){$o=array($a,$b);for($i=$a+1;$i<$b;$i++)$o=$i;print_r($o);}
                                                                                                      – th3pirat3
                                                                                                      2 days ago






                                                                                                      I dont think that this is a right approach for code golf. Check this one function t($a,$b){$o=array($a,$b);for($i=$a+1;$i<$b;$i++)$o=$i;print_r($o);}
                                                                                                      – th3pirat3
                                                                                                      2 days ago














                                                                                                      Or something like this function t($a,$b){echo $a.$b;for($i=$a+1;$i<$b;$i++)echo $i};
                                                                                                      – th3pirat3
                                                                                                      2 days ago






                                                                                                      Or something like this function t($a,$b){echo $a.$b;for($i=$a+1;$i<$b;$i++)echo $i};
                                                                                                      – th3pirat3
                                                                                                      2 days ago






                                                                                                      1




                                                                                                      1




                                                                                                      It has to be a function and it has to output an array. If you have a better answer your more then welcome to post it.
                                                                                                      – ArtisticPhoenix
                                                                                                      2 days ago






                                                                                                      It has to be a function and it has to output an array. If you have a better answer your more then welcome to post it.
                                                                                                      – ArtisticPhoenix
                                                                                                      2 days ago














                                                                                                      I edited it, is that a valid submission now? Shall I put it as a new answer or what?
                                                                                                      – th3pirat3
                                                                                                      2 days ago




                                                                                                      I edited it, is that a valid submission now? Shall I put it as a new answer or what?
                                                                                                      – th3pirat3
                                                                                                      2 days ago












                                                                                                      That is entirely up to you, I just wanted to do it without a loop ... lol
                                                                                                      – ArtisticPhoenix
                                                                                                      2 days ago




                                                                                                      That is entirely up to you, I just wanted to do it without a loop ... lol
                                                                                                      – ArtisticPhoenix
                                                                                                      2 days ago










                                                                                                      up vote
                                                                                                      3
                                                                                                      down vote














                                                                                                      D, 85 bytes





                                                                                                      Tf(T)(T a,T b){Tv=[a,b];T c=2*(b>a)-1;for(T i=a+c;a!=b&&b!=i;i+=c)v~=i;return v;}


                                                                                                      Try it online!



                                                                                                      A port of @HatsuPointerKun's C++ answer into D.






                                                                                                      share|improve this answer

























                                                                                                        up vote
                                                                                                        3
                                                                                                        down vote














                                                                                                        D, 85 bytes





                                                                                                        Tf(T)(T a,T b){Tv=[a,b];T c=2*(b>a)-1;for(T i=a+c;a!=b&&b!=i;i+=c)v~=i;return v;}


                                                                                                        Try it online!



                                                                                                        A port of @HatsuPointerKun's C++ answer into D.






                                                                                                        share|improve this answer























                                                                                                          up vote
                                                                                                          3
                                                                                                          down vote










                                                                                                          up vote
                                                                                                          3
                                                                                                          down vote










                                                                                                          D, 85 bytes





                                                                                                          Tf(T)(T a,T b){Tv=[a,b];T c=2*(b>a)-1;for(T i=a+c;a!=b&&b!=i;i+=c)v~=i;return v;}


                                                                                                          Try it online!



                                                                                                          A port of @HatsuPointerKun's C++ answer into D.






                                                                                                          share|improve this answer













                                                                                                          D, 85 bytes





                                                                                                          Tf(T)(T a,T b){Tv=[a,b];T c=2*(b>a)-1;for(T i=a+c;a!=b&&b!=i;i+=c)v~=i;return v;}


                                                                                                          Try it online!



                                                                                                          A port of @HatsuPointerKun's C++ answer into D.







                                                                                                          share|improve this answer












                                                                                                          share|improve this answer



                                                                                                          share|improve this answer










                                                                                                          answered Nov 10 at 2:37









                                                                                                          Zacharý

                                                                                                          5,07511035




                                                                                                          5,07511035






















                                                                                                              up vote
                                                                                                              3
                                                                                                              down vote













                                                                                                              TI-BASIC, 35 34 bytes



                                                                                                              -1 byte from Misha Lavrov



                                                                                                              Prompt A,B
                                                                                                              Disp A,B
                                                                                                              cos(π(A>B
                                                                                                              For(I,A+Ans,B-Ans,Ans
                                                                                                              Disp I
                                                                                                              End





                                                                                                              share|improve this answer



















                                                                                                              • 2




                                                                                                                And one more byte by replacing 1-2(A>B with cos(π(A>B.
                                                                                                                – Misha Lavrov
                                                                                                                Nov 8 at 20:55










                                                                                                              • @MishaLavrov seq( wouldn't work for inputs where A and B are the same, unfortunately :(
                                                                                                                – kamoroso94
                                                                                                                Nov 8 at 22:33












                                                                                                              • True - also, I left out an argument of seq(, so I'm no longer convinced it even is smaller. Still, the cos( trick should help.
                                                                                                                – Misha Lavrov
                                                                                                                Nov 8 at 22:34















                                                                                                              up vote
                                                                                                              3
                                                                                                              down vote













                                                                                                              TI-BASIC, 35 34 bytes



                                                                                                              -1 byte from Misha Lavrov



                                                                                                              Prompt A,B
                                                                                                              Disp A,B
                                                                                                              cos(π(A>B
                                                                                                              For(I,A+Ans,B-Ans,Ans
                                                                                                              Disp I
                                                                                                              End





                                                                                                              share|improve this answer



















                                                                                                              • 2




                                                                                                                And one more byte by replacing 1-2(A>B with cos(π(A>B.
                                                                                                                – Misha Lavrov
                                                                                                                Nov 8 at 20:55










                                                                                                              • @MishaLavrov seq( wouldn't work for inputs where A and B are the same, unfortunately :(
                                                                                                                – kamoroso94
                                                                                                                Nov 8 at 22:33












                                                                                                              • True - also, I left out an argument of seq(, so I'm no longer convinced it even is smaller. Still, the cos( trick should help.
                                                                                                                – Misha Lavrov
                                                                                                                Nov 8 at 22:34













                                                                                                              up vote
                                                                                                              3
                                                                                                              down vote










                                                                                                              up vote
                                                                                                              3
                                                                                                              down vote









                                                                                                              TI-BASIC, 35 34 bytes



                                                                                                              -1 byte from Misha Lavrov



                                                                                                              Prompt A,B
                                                                                                              Disp A,B
                                                                                                              cos(π(A>B
                                                                                                              For(I,A+Ans,B-Ans,Ans
                                                                                                              Disp I
                                                                                                              End





                                                                                                              share|improve this answer














                                                                                                              TI-BASIC, 35 34 bytes



                                                                                                              -1 byte from Misha Lavrov



                                                                                                              Prompt A,B
                                                                                                              Disp A,B
                                                                                                              cos(π(A>B
                                                                                                              For(I,A+Ans,B-Ans,Ans
                                                                                                              Disp I
                                                                                                              End






                                                                                                              share|improve this answer














                                                                                                              share|improve this answer



                                                                                                              share|improve this answer








                                                                                                              edited yesterday

























                                                                                                              answered Nov 8 at 18:08









                                                                                                              kamoroso94

                                                                                                              65149




                                                                                                              65149








                                                                                                              • 2




                                                                                                                And one more byte by replacing 1-2(A>B with cos(π(A>B.
                                                                                                                – Misha Lavrov
                                                                                                                Nov 8 at 20:55










                                                                                                              • @MishaLavrov seq( wouldn't work for inputs where A and B are the same, unfortunately :(
                                                                                                                – kamoroso94
                                                                                                                Nov 8 at 22:33












                                                                                                              • True - also, I left out an argument of seq(, so I'm no longer convinced it even is smaller. Still, the cos( trick should help.
                                                                                                                – Misha Lavrov
                                                                                                                Nov 8 at 22:34














                                                                                                              • 2




                                                                                                                And one more byte by replacing 1-2(A>B with cos(π(A>B.
                                                                                                                – Misha Lavrov
                                                                                                                Nov 8 at 20:55










                                                                                                              • @MishaLavrov seq( wouldn't work for inputs where A and B are the same, unfortunately :(
                                                                                                                – kamoroso94
                                                                                                                Nov 8 at 22:33












                                                                                                              • True - also, I left out an argument of seq(, so I'm no longer convinced it even is smaller. Still, the cos( trick should help.
                                                                                                                – Misha Lavrov
                                                                                                                Nov 8 at 22:34








                                                                                                              2




                                                                                                              2




                                                                                                              And one more byte by replacing 1-2(A>B with cos(π(A>B.
                                                                                                              – Misha Lavrov
                                                                                                              Nov 8 at 20:55




                                                                                                              And one more byte by replacing 1-2(A>B with cos(π(A>B.
                                                                                                              – Misha Lavrov
                                                                                                              Nov 8 at 20:55












                                                                                                              @MishaLavrov seq( wouldn't work for inputs where A and B are the same, unfortunately :(
                                                                                                              – kamoroso94
                                                                                                              Nov 8 at 22:33






                                                                                                              @MishaLavrov seq( wouldn't work for inputs where A and B are the same, unfortunately :(
                                                                                                              – kamoroso94
                                                                                                              Nov 8 at 22:33














                                                                                                              True - also, I left out an argument of seq(, so I'm no longer convinced it even is smaller. Still, the cos( trick should help.
                                                                                                              – Misha Lavrov
                                                                                                              Nov 8 at 22:34




                                                                                                              True - also, I left out an argument of seq(, so I'm no longer convinced it even is smaller. Still, the cos( trick should help.
                                                                                                              – Misha Lavrov
                                                                                                              Nov 8 at 22:34










                                                                                                              up vote
                                                                                                              2
                                                                                                              down vote














                                                                                                              Charcoal, 15 bytes



                                                                                                              IE²NI…⊕θηI⮌…⊕ηθ


                                                                                                              Try it online! Link is to verbose version of code. Explanation:



                                                                                                              IE²N


                                                                                                              Print the inputs on separate lines.



                                                                                                              I…⊕θη


                                                                                                              Print the ascending range, if any.



                                                                                                              I⮌…⊕ηθ


                                                                                                              Print the reverse ascending reverse range, if any.






                                                                                                              share|improve this answer

























                                                                                                                up vote
                                                                                                                2
                                                                                                                down vote














                                                                                                                Charcoal, 15 bytes



                                                                                                                IE²NI…⊕θηI⮌…⊕ηθ


                                                                                                                Try it online! Link is to verbose version of code. Explanation:



                                                                                                                IE²N


                                                                                                                Print the inputs on separate lines.



                                                                                                                I…⊕θη


                                                                                                                Print the ascending range, if any.



                                                                                                                I⮌…⊕ηθ


                                                                                                                Print the reverse ascending reverse range, if any.






                                                                                                                share|improve this answer























                                                                                                                  up vote
                                                                                                                  2
                                                                                                                  down vote










                                                                                                                  up vote
                                                                                                                  2
                                                                                                                  down vote










                                                                                                                  Charcoal, 15 bytes



                                                                                                                  IE²NI…⊕θηI⮌…⊕ηθ


                                                                                                                  Try it online! Link is to verbose version of code. Explanation:



                                                                                                                  IE²N


                                                                                                                  Print the inputs on separate lines.



                                                                                                                  I…⊕θη


                                                                                                                  Print the ascending range, if any.



                                                                                                                  I⮌…⊕ηθ


                                                                                                                  Print the reverse ascending reverse range, if any.






                                                                                                                  share|improve this answer













                                                                                                                  Charcoal, 15 bytes



                                                                                                                  IE²NI…⊕θηI⮌…⊕ηθ


                                                                                                                  Try it online! Link is to verbose version of code. Explanation:



                                                                                                                  IE²N


                                                                                                                  Print the inputs on separate lines.



                                                                                                                  I…⊕θη


                                                                                                                  Print the ascending range, if any.



                                                                                                                  I⮌…⊕ηθ


                                                                                                                  Print the reverse ascending reverse range, if any.







                                                                                                                  share|improve this answer












                                                                                                                  share|improve this answer



                                                                                                                  share|improve this answer










                                                                                                                  answered Nov 8 at 9:42









                                                                                                                  Neil

                                                                                                                  77.6k744174




                                                                                                                  77.6k744174






















                                                                                                                      up vote
                                                                                                                      2
                                                                                                                      down vote














                                                                                                                      Dart, 85 84 bytes



                                                                                                                      f(a,b)=>[a,b]+((a-b).abs()>1?List.generate((a-b).abs()-1,(i)=>(a>b?-i-1:i+1)+a):);


                                                                                                                      Try it online!




                                                                                                                    • -1 by going from >= to >





                                                                                                                    • share|improve this answer

























                                                                                                                        up vote
                                                                                                                        2
                                                                                                                        down vote














                                                                                                                        Dart, 85 84 bytes



                                                                                                                        f(a,b)=>[a,b]+((a-b).abs()>1?List.generate((a-b).abs()-1,(i)=>(a>b?-i-1:i+1)+a):);


                                                                                                                        Try it online!




                                                                                                                      • -1 by going from >= to >





                                                                                                                      • share|improve this answer























                                                                                                                          up vote
                                                                                                                          2
                                                                                                                          down vote










                                                                                                                          up vote
                                                                                                                          2
                                                                                                                          down vote










                                                                                                                          Dart, 85 84 bytes



                                                                                                                          f(a,b)=>[a,b]+((a-b).abs()>1?List.generate((a-b).abs()-1,(i)=>(a>b?-i-1:i+1)+a):);


                                                                                                                          Try it online!




                                                                                                                        • -1 by going from >= to >





                                                                                                                        • share|improve this answer













                                                                                                                          Dart, 85 84 bytes



                                                                                                                          f(a,b)=>[a,b]+((a-b).abs()>1?List.generate((a-b).abs()-1,(i)=>(a>b?-i-1:i+1)+a):);


                                                                                                                          Try it online!




                                                                                                                        • -1 by going from >= to >






                                                                                                                        • share|improve this answer












                                                                                                                          share|improve this answer



                                                                                                                          share|improve this answer










                                                                                                                          answered Nov 8 at 10:10









                                                                                                                          Elcan

                                                                                                                          27115




                                                                                                                          27115






















                                                                                                                              up vote
                                                                                                                              2
                                                                                                                              down vote













                                                                                                                              QBASIC, 39 53 bytes



                                                                                                                              INPUT a,b
                                                                                                                              ?a
                                                                                                                              ?b
                                                                                                                              FOR q=a+1TO b-1 STEP SGN(b-a)
                                                                                                                              ?q
                                                                                                                              NEXT


                                                                                                                              Added the STEP parameter to account for a>b, and that uses the SGN() function to get a -1 or a +1 as increment. This however breaks the REPL because the SGN() function isn't implemented there...



                                                                                                                              Try it (the old answer) online!






                                                                                                                              share|improve this answer



























                                                                                                                                up vote
                                                                                                                                2
                                                                                                                                down vote













                                                                                                                                QBASIC, 39 53 bytes



                                                                                                                                INPUT a,b
                                                                                                                                ?a
                                                                                                                                ?b
                                                                                                                                FOR q=a+1TO b-1 STEP SGN(b-a)
                                                                                                                                ?q
                                                                                                                                NEXT


                                                                                                                                Added the STEP parameter to account for a>b, and that uses the SGN() function to get a -1 or a +1 as increment. This however breaks the REPL because the SGN() function isn't implemented there...



                                                                                                                                Try it (the old answer) online!






                                                                                                                                share|improve this answer

























                                                                                                                                  up vote
                                                                                                                                  2
                                                                                                                                  down vote










                                                                                                                                  up vote
                                                                                                                                  2
                                                                                                                                  down vote









                                                                                                                                  QBASIC, 39 53 bytes



                                                                                                                                  INPUT a,b
                                                                                                                                  ?a
                                                                                                                                  ?b
                                                                                                                                  FOR q=a+1TO b-1 STEP SGN(b-a)
                                                                                                                                  ?q
                                                                                                                                  NEXT


                                                                                                                                  Added the STEP parameter to account for a>b, and that uses the SGN() function to get a -1 or a +1 as increment. This however breaks the REPL because the SGN() function isn't implemented there...



                                                                                                                                  Try it (the old answer) online!






                                                                                                                                  share|improve this answer














                                                                                                                                  QBASIC, 39 53 bytes



                                                                                                                                  INPUT a,b
                                                                                                                                  ?a
                                                                                                                                  ?b
                                                                                                                                  FOR q=a+1TO b-1 STEP SGN(b-a)
                                                                                                                                  ?q
                                                                                                                                  NEXT


                                                                                                                                  Added the STEP parameter to account for a>b, and that uses the SGN() function to get a -1 or a +1 as increment. This however breaks the REPL because the SGN() function isn't implemented there...



                                                                                                                                  Try it (the old answer) online!







                                                                                                                                  share|improve this answer














                                                                                                                                  share|improve this answer



                                                                                                                                  share|improve this answer








                                                                                                                                  edited Nov 8 at 11:49

























                                                                                                                                  answered Nov 8 at 10:59









                                                                                                                                  steenbergh

                                                                                                                                  6,77411739




                                                                                                                                  6,77411739






















                                                                                                                                      up vote
                                                                                                                                      2
                                                                                                                                      down vote














                                                                                                                                      Ruby, 33 40 bytes





                                                                                                                                      ->a,b{[a,b]+[*a..b,*a.downto(b)][1..-2]}


                                                                                                                                      Try it online!



                                                                                                                                      Temporary fix, trying to find a better idea






                                                                                                                                      share|improve this answer



















                                                                                                                                      • 3




                                                                                                                                        For [4,4] this gives only one [4]
                                                                                                                                        – Kirill L.
                                                                                                                                        Nov 8 at 9:36















                                                                                                                                      up vote
                                                                                                                                      2
                                                                                                                                      down vote














                                                                                                                                      Ruby, 33 40 bytes





                                                                                                                                      ->a,b{[a,b]+[*a..b,*a.downto(b)][1..-2]}


                                                                                                                                      Try it online!



                                                                                                                                      Temporary fix, trying to find a better idea






                                                                                                                                      share|improve this answer



















                                                                                                                                      • 3




                                                                                                                                        For [4,4] this gives only one [4]
                                                                                                                                        – Kirill L.
                                                                                                                                        Nov 8 at 9:36













                                                                                                                                      up vote
                                                                                                                                      2
                                                                                                                                      down vote










                                                                                                                                      up vote
                                                                                                                                      2
                                                                                                                                      down vote










                                                                                                                                      Ruby, 33 40 bytes





                                                                                                                                      ->a,b{[a,b]+[*a..b,*a.downto(b)][1..-2]}


                                                                                                                                      Try it online!



                                                                                                                                      Temporary fix, trying to find a better idea






                                                                                                                                      share|improve this answer















                                                                                                                                      Ruby, 33 40 bytes





                                                                                                                                      ->a,b{[a,b]+[*a..b,*a.downto(b)][1..-2]}


                                                                                                                                      Try it online!



                                                                                                                                      Temporary fix, trying to find a better idea







                                                                                                                                      share|improve this answer














                                                                                                                                      share|improve this answer



                                                                                                                                      share|improve this answer








                                                                                                                                      edited Nov 8 at 12:55

























                                                                                                                                      answered Nov 8 at 9:01









                                                                                                                                      G B

                                                                                                                                      7,4461327




                                                                                                                                      7,4461327








                                                                                                                                      • 3




                                                                                                                                        For [4,4] this gives only one [4]
                                                                                                                                        – Kirill L.
                                                                                                                                        Nov 8 at 9:36














                                                                                                                                      • 3




                                                                                                                                        For [4,4] this gives only one [4]
                                                                                                                                        – Kirill L.
                                                                                                                                        Nov 8 at 9:36








                                                                                                                                      3




                                                                                                                                      3




                                                                                                                                      For [4,4] this gives only one [4]
                                                                                                                                      – Kirill L.
                                                                                                                                      Nov 8 at 9:36




                                                                                                                                      For [4,4] this gives only one [4]
                                                                                                                                      – Kirill L.
                                                                                                                                      Nov 8 at 9:36










                                                                                                                                      up vote
                                                                                                                                      2
                                                                                                                                      down vote














                                                                                                                                      C (gcc), 65 bytes





                                                                                                                                      f(a,b){for(printf("%d %d",a,b);a<b?++a<b:--a>b;)printf(" %d",a);}


                                                                                                                                      Try it online!



                                                                                                                                      Not very exciting. The loop increment is borrowed from an early version of Kevin Cruijssen's Java answer.






                                                                                                                                      share|improve this answer



























                                                                                                                                        up vote
                                                                                                                                        2
                                                                                                                                        down vote














                                                                                                                                        C (gcc), 65 bytes





                                                                                                                                        f(a,b){for(printf("%d %d",a,b);a<b?++a<b:--a>b;)printf(" %d",a);}


                                                                                                                                        Try it online!



                                                                                                                                        Not very exciting. The loop increment is borrowed from an early version of Kevin Cruijssen's Java answer.






                                                                                                                                        share|improve this answer

























                                                                                                                                          up vote
                                                                                                                                          2
                                                                                                                                          down vote










                                                                                                                                          up vote
                                                                                                                                          2
                                                                                                                                          down vote










                                                                                                                                          C (gcc), 65 bytes





                                                                                                                                          f(a,b){for(printf("%d %d",a,b);a<b?++a<b:--a>b;)printf(" %d",a);}


                                                                                                                                          Try it online!



                                                                                                                                          Not very exciting. The loop increment is borrowed from an early version of Kevin Cruijssen's Java answer.






                                                                                                                                          share|improve this answer















                                                                                                                                          C (gcc), 65 bytes





                                                                                                                                          f(a,b){for(printf("%d %d",a,b);a<b?++a<b:--a>b;)printf(" %d",a);}


                                                                                                                                          Try it online!



                                                                                                                                          Not very exciting. The loop increment is borrowed from an early version of Kevin Cruijssen's Java answer.







                                                                                                                                          share|improve this answer














                                                                                                                                          share|improve this answer



                                                                                                                                          share|improve this answer








                                                                                                                                          edited Nov 8 at 13:14

























                                                                                                                                          answered Nov 8 at 11:25









                                                                                                                                          nwellnhof

                                                                                                                                          5,628921




                                                                                                                                          5,628921






















                                                                                                                                              1 2
                                                                                                                                              next

















                                                                                                                                               

                                                                                                                                              draft saved


                                                                                                                                              draft discarded



















































                                                                                                                                               


                                                                                                                                              draft saved


                                                                                                                                              draft discarded














                                                                                                                                              StackExchange.ready(
                                                                                                                                              function () {
                                                                                                                                              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodegolf.stackexchange.com%2fquestions%2f175485%2fthe-first-the-last-and-everything-between%23new-answer', 'question_page');
                                                                                                                                              }
                                                                                                                                              );

                                                                                                                                              Post as a guest




















































































                                                                                                                                              Popular posts from this blog

                                                                                                                                              How to change which sound is reproduced for terminal bell?

                                                                                                                                              Title Spacing in Bjornstrup Chapter, Removing Chapter Number From Contents

                                                                                                                                              Can I use Tabulator js library in my java Spring + Thymeleaf project?