56
\$\begingroup\$

This might be a very simple challenge, but I am surprised it hasn't been done on code-golf yet:

Print all Integers from 1 to 10 inclusive in ascending order to standard output.

Your output format can be whatever your language supports. This includes arbitrary separators (commas, semicolons, newlines, combinations of those, etc., but no digits), and prefixes and postfixes (like [...]). However, you may not output any other numbers than 1 through 10. Your program may not take any input. Standard loopholes are disallowed.

This is , so shortest answer in bytes wins!

Leaderboard

var QUESTION_ID=86075,OVERRIDE_USER=42570;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>

\$\endgroup\$
17
  • 10
    \$\begingroup\$ Related (duplicate?) \$\endgroup\$
    – Luis Mendo
    Jul 21, 2016 at 9:07
  • 17
    \$\begingroup\$ If the only change is hard-coding a single parameter then that falls under the banner of "trivial change", and by the standards of this site still counts as a dupe. \$\endgroup\$ Jul 21, 2016 at 9:54
  • 10
    \$\begingroup\$ @PeterTaylor The other challenge has a huge problem with the integer limits though. The way it's specified every TC language that doesn't have 64-bit integers needs to implement them. (And that affects quite a lot of languages.) \$\endgroup\$ Jul 21, 2016 at 10:01
  • 19
    \$\begingroup\$ @xnor Quite frankly, I'd rather close the other challenge as a duplicate of this one. The requirement pretty much ruins it. \$\endgroup\$
    – Dennis
    Jul 21, 2016 at 14:09
  • 11
    \$\begingroup\$ I can't believe every single of the (currently) 71 answers assumes the base should be decimal… \$\endgroup\$ Jul 22, 2016 at 15:05

251 Answers 251

1
5 6 7
8
9
1
\$\begingroup\$

Rogex, 27 bytes

90B300d00901e00100701a20f00

Try it online!

Explained

90B 300 d00 # Set the loop value to 11
901         # Set the buffer to 1
e00         # While the buffer isn't equal to 11
    100 701 # Print the buffer then increment it
    a20     # Print a space
f00         # End loop

Rogex answer number 2! Also, my 101st answer! (´• ヮ •`)

\$\endgroup\$
1
\$\begingroup\$

Intcode, 44 42 bytes

-2 bytes thanks to rootbeersoup

204,8,9,8,1205,8,0,99,1,2,3,4,5,6,7,8,9,10

Try it online!

Isn't it unfortunate that a just-hardcode solution outgolfs the other intcode answer by six bytes?

\$\endgroup\$
1
  • \$\begingroup\$ Saves 2 chars: 204,8,9,8,1205,8,0,99,1,2,3,4,5,6,7,8,9,10 \$\endgroup\$ Jan 30, 2020 at 5:33
1
\$\begingroup\$

W, 2 bytes

Tk

Constant 10, then range from 1 to that. Added for completeness.

\$\endgroup\$
1
\$\begingroup\$

MAWP, 13 bytes

25W[1A~!:1M~]

Try it!

\$\endgroup\$
2
  • 1
    \$\begingroup\$ The integer complexity thing in 1+ is frustrating... \$\endgroup\$
    – null
    Aug 13, 2020 at 2:56
  • \$\begingroup\$ yup lol, I should try golfing 1+ sometime \$\endgroup\$
    – Razetime
    Sep 8, 2020 at 6:44
1
\$\begingroup\$

1+, 25 22 bytes

1:1(|1+":1+":1+":)()()

...

EDIT: The boring solution is shorter.

\$\endgroup\$
1
\$\begingroup\$

Rockstar, 32 bytes

X's0
while 10-X
let X be+1
say X

Try it here (Code will need to be pasted in)

\$\endgroup\$
1
\$\begingroup\$

BitCycle -u, 40 bytes

v0 ~
v1~/
AB~
v000000<
AB\ 000^
v =@
!1<

Try it online!

Explanation pending. I need to sleep first.

(I also found a 36-byte program that outputs 0 through 9, but I haven't found a good way to turn it into 1 through 10.)

\$\endgroup\$
1
\$\begingroup\$

Japt, 2 bytes

Test it

Aõ
A     :10
 õ    :Range [1,A]
\$\endgroup\$
1
\$\begingroup\$

Headascii, 50 bytes

++++[]]]][]]]+O^+O+O+O+O+O+O+O+ODONE.{UPN)!@}:R-P!

Try it here! Code will need to be copied and executed like this:

erun("++++[]]]][]]]+O^+O+O+O+O+O+O+O+ODONE.{UPN)!@}:R-P!")

Outputs each number separated by newline. Nontrivial challenges scare me :')

++++[]]]][]]]+O^+O+O+O+O+O+O+O+ODONE.{UPN)!@}:R-P!  full program
                                    .               code block delimiter

++++[]]]][]]]+O^+O+O+O+O+O+O+O+ODONE  block 0
              O  O O O O O O O O O    send
++++[]]]][]]]+                        49 (ascii 1)
                +                     50 (ascii 2)
                  +                   51 (ascii 3)
                    +                 52 (ascii 4)
                      +               53 (ascii 5)
                        +             54 (ascii 6)
                          +           55 (ascii 7)
                            +         56 (ascii 8)
                              +       57 (ascii 9)
               ^                D     49 (ascii 1)
                                  NE  to code block 1

{UPN)!@}:R-P!  block 1
{      }       Loop
   N)   :      Until last value
 UP              Put value on string register
     !@          Print and clear string register
         R     Recall last value (49)
          -    Minus 1 (48, ascii 0)
           P!  Concatenate to string register and print

Sending inputs to code block to loop print saves 5 bytes over printing each individually, but it might be possible to save more bytes by doing some sort of for-loop type structure from the beginning. Storing 9 as well as 48 seems expensive, though.

\$\endgroup\$
1
\$\begingroup\$

Julia 1.7, 14 bytes

print((1:10)')

Try it online!

1:10 returns a Range. Note that in Julia 0.2 we can just use print(1:10). This does not work in later versions (I've tested this starting from Julia 0.4).

We could use print(collect(1:10)). But this is costly. But we can use a trick by using the ' transpose operator.

There is also an answer for Julia 0.6 which uses show.(1:10) as this prints 1-10, it prints additional stuff in newer Versions of Julia due to the nature of broadcasting, namely,

12345678910
10-element Vector{Nothing}:
 nothing
 nothing
 nothing
 nothing
 nothing
 nothing
 nothing
 nothing
 nothing
 nothing
\$\endgroup\$
3
  • \$\begingroup\$ use show instead of print for -1 byte \$\endgroup\$
    – MarcMush
    Feb 17 at 17:22
  • \$\begingroup\$ show.(1:10) is fine in any version as the additional output is produced only in the REPL. You can mute it by appending a ; \$\endgroup\$
    – amelies
    Feb 17 at 18:45
  • \$\begingroup\$ @amelies cool! I didn't know that. \$\endgroup\$ Feb 17 at 19:42
1
\$\begingroup\$

Python 3, 24 bytes

print(list(range(1,11)))

This is just shorter than writing the entire list.

Explanation:

           range(1,11)   creates a range object from 1 to 10
      list(           )  converts to a list
print(                 ) prints the result of that out
\$\endgroup\$
1
\$\begingroup\$

Ly, 13 4 bytes

`9`R

I found a better way. :)

`     incrementing the empty top of stack pushes a 1
 9    push 9 onto the stack
  `   increment the top of stack to get "10"
   R  generate the inclusive range of int between the top 2 stack entries

The stack entries are printed as numbers by default when the code exits.

Try it online!

\$\endgroup\$
1
\$\begingroup\$

Ruby, 20 bytes

(1..10).each{|i|p i}

Cannot be any simpler than this.

Attempt This Online!

\$\endgroup\$
5
  • \$\begingroup\$ 1.upto(10){p _1} is 16 \$\endgroup\$
    – Razetime
    May 1 at 6:24
  • \$\begingroup\$ @Razetime Damn you are right. \$\endgroup\$
    – oeuf
    May 1 at 8:06
  • \$\begingroup\$ @Razetime For some reason when running on ATO it refuse to run and running on TIO returns error so I am gonna leave this for a while. \$\endgroup\$
    – oeuf
    May 1 at 8:10
  • \$\begingroup\$ You should report this problem to pxeger. If you wanna verify it, try running it on irb in your terminal. \$\endgroup\$
    – Razetime
    May 1 at 8:41
  • \$\begingroup\$ I have reported this to him, and run the code on irb also seems to run fine. \$\endgroup\$
    – oeuf
    May 1 at 9:35
0
\$\begingroup\$

jq, 12 characters

(11 characters code + 1 character command line option.)

range(1;11)

Sample run:

bash-4.3$ jq -n 'range(1;11)'
1
2
3
4
5
6
7
8
9
10

On-line test

\$\endgroup\$
0
\$\begingroup\$

Bc, 14 characters

while(i++<10)i

Sample run:

bash-4.3$ bc <<< 'while(i++<10)i'
1
2
3
4
5
6
7
8
9
10
\$\endgroup\$
0
\$\begingroup\$

JavaScript (using external library) (39 bytes)

x=>console.log(_.Range(1,10).Write(""))

Link to lib:https://github.com/mvegh1/Enumerable/

Explanation of code: _.Range creates the array [1,..10], Write joins the array into a string, console.log puts to StdOut

\$\endgroup\$
4
  • \$\begingroup\$ I was thinking about using something like Underscore's range, but figured something pure would be a bit more impressive. Nice solution! \$\endgroup\$
    – Swivel
    Jul 21, 2016 at 20:03
  • \$\begingroup\$ Thanks! Yeah yours is way shorter than mine hahaha, I need to learn the ... syntax! \$\endgroup\$ Jul 21, 2016 at 20:31
  • \$\begingroup\$ MDN has an article on the Spread Operator :) -- I started with [...Array(10)].map((v,i)=>++i), but that was 30 bytes and I was hoping to do better than the first JavaScript answer on here (24 bytes)! Then I realized that a String is, more or less, just an array of characters. So I tried the spread operator, and viola! \$\endgroup\$
    – Swivel
    Jul 21, 2016 at 20:36
  • \$\begingroup\$ Ahhhh ok wow I see what its doing. Not bad!! \$\endgroup\$ Jul 21, 2016 at 20:40
0
\$\begingroup\$

JavaScript (Node.JS 5 / Harmony / ES2015), 19 bytes

[...`123456789`,10]

Output

[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]

Try it here or run node -p -e "[...'123456789',10]"

(For older versions of Node.js, like LTS 4.4.7, use node --harmony)

\$\endgroup\$
7
  • \$\begingroup\$ Previous attempts were: [...Array(10)].map((v,i)=>++i) and [...Array(11).keys()].slice(1), but both ended up with 30 bytes, which was less than the other JavaScript submissions here. \$\endgroup\$
    – Swivel
    Jul 22, 2016 at 14:41
  • 1
    \$\begingroup\$ 1) Your code does not print the integers; but as -p clearly adds functionality to it, there should be some penalty for it imo. 2) When I log that to my console (without node), I get an array with nine strings and one integer 3) This is pretty close to a hard coded result. \$\endgroup\$
    – Titus
    Jul 22, 2016 at 14:56
  • \$\begingroup\$ There were both an [...Array(10)].map((_,i)=>i+1) and an [...Array(11).keys()].slice(1) elsewhere, just wrapped with alert making them 37 bytes \$\endgroup\$ Jul 22, 2016 at 16:45
  • \$\begingroup\$ @Titus (1) This is Node.JS, not browser-based JavaScript. They are two different things. However, I can kind of see your point with -p. (2) "This includes arbitrary separators (commas, semicolons, newlines, combinations of those, etc., but no digits), prefixes and postfixes (like [...])." (3) Arguable. \$\endgroup\$
    – Swivel
    Jul 22, 2016 at 20:05
  • \$\begingroup\$ @PaoloBonzini You're late to the party. Both of those were posted by Titus four hours ago. Both of which I left in the comments here and on another answer roughly 24 hours ago :) Granted, I didn't put them in my solution, but that's beside the point. -- As for using an alert instead, I defer to (1) in my response to Titus. I primarily develop in Node.JS and use the Node.JS REPL, not browser-based JavaScript. These are two different platforms; similar implementations of a similar spec, but arguably not the same exact thing. I respect the position, though. \$\endgroup\$
    – Swivel
    Jul 22, 2016 at 20:10
0
\$\begingroup\$

LibreLogo, 20 bytes

Code:

print set range 1 11

Output:

enter image description here

\$\endgroup\$
0
\$\begingroup\$

Triangular, 15 bytes

S](l.U@..i/AS%<

Formats into this triangle:

    S
   ] (
  l . U
 @ . . i
/ A S % <
  1. The first command, S, stashes the top of stack (0) in memory. (This is only so that the U will work the first time.)
  2. ( opens a loop.
  3. U pulls memory onto stack.
  4. i increments the stack value.
  5. < directs the IP left, hitting %, which prints the top of stack as an integer.
  6. S stashes the top of stack in memory.
  7. A pushes 10 to the stack.
  8. / directs the IP up-right, hitting @, which prints the top of stack (10) as ASCII (\n).
  9. l checks if the second-to-last stack value (the counter value) is less than 10.
  10. If so, jump back to (. Otherwise, exit the program.
\$\endgroup\$
1
  • \$\begingroup\$ 14 \$\endgroup\$
    – squid
    Sep 16, 2019 at 13:17
0
\$\begingroup\$

tcl, 23

time {puts [incr i]} 10

demo

\$\endgroup\$
0
\$\begingroup\$

><>, 10 bytes

llnao:9=?;

Try it online!

Explanation:

This program pushes the length of the stack instead of trying to increment the top of the stack, because l is shorter than 1+, and you can do it to an empty stack.

l             Push the length of the stack. The first time through pushes 0.
 ln           Print the length of the stack. The first time through prints 1.
   ao         Print a linefeed. (ASCII value 10)
     :9=      If the top of the stack is 9 (i.e. we just printed 10), push 1. 
              Otherwise, push 0.
        ?;    If the top of the stack is non-0, end the program.
              
              Wrap to the start and Repeat. At the end of the loop, we end up
              with one more value on the stack than we started with.
          
\$\endgroup\$
1
  • \$\begingroup\$ Whoops, I didn't see the other ><> answer that also uses the length of the stack as an incrementer. I'm going to leave this up, but you should really go upvote them if you're going to upvote me. It's even the same byte count. \$\endgroup\$ Jun 19, 2017 at 18:03
0
\$\begingroup\$

8th, 18 bytes

( . cr ) 1 10 loop
\$\endgroup\$
0
\$\begingroup\$

TLDCode, 12 10 Bytes

='1'p9{c+}

Clears the stack of the default input, pushes 1 to the stack, parses it from a string to a number, reapeats c+ 9 times, which copies the top of the stack and pushes to the stop of the stack, then incremetnts it. Implicitly prints the stack with _ as the seperator.

Output

1_2_3_4_5_6_7_8_9_10

Previous attempt (12 bytes)

'1'pe9{n+e}=

Pushes 1 to the stack, parses it from a string to a number and prints, then repeats n+e 9 times, which prints a new line, increments the top of the stack and then prints the top. Then it clears the stack to avoid the implicit printing of the default input.

Output

1
2
3
4
5
6
7
8
9
10
\$\endgroup\$
0
\$\begingroup\$

Firebird, 113 bytes

The compacted select, used to calculate the score is below:

WITH RECURSIVE T AS (SELECT 1 AS I FROM RDB$DATABASE UNION ALL SELECT 1+I FROM T WHERE I < 10 ) SELECT * FROM T

The formated select:

WITH RECURSIVE T AS (
  SELECT 1 AS I
  FROM RDB$DATABASE
  UNION ALL
  SELECT 1+I
  FROM T
  WHERE I < 10
)
SELECT *
FROM T

Short explanation: I start with a select on a system table from firebird, witch always has only one record. Then, using recursion on that projection, I add the column "I" until it reaches 10.

\$\endgroup\$
4
  • \$\begingroup\$ Welcome to PPCG! Seems like a decent first post, but I think that you could improve it by giving a short explanation for how it works. \$\endgroup\$ Jun 22, 2017 at 19:56
  • 1
    \$\begingroup\$ Thanks. Yes, I should have add a short explanation on my answer. Already updated it. \$\endgroup\$ Jun 22, 2017 at 20:00
  • \$\begingroup\$ Can you remove some of the spaces/newlines? \$\endgroup\$ Jun 22, 2017 at 20:02
  • \$\begingroup\$ @CalculatorFeline Yes I Can! Will do that now, thanks! \$\endgroup\$ Jun 22, 2017 at 20:04
0
\$\begingroup\$

Python 2.7, 17 bytes

print range(1,11)

Why 11? The range() function is non-inclusive for the end argument.

repl.it

\$\endgroup\$
2
  • \$\begingroup\$ Duplicate of TuukkaX's Python2 answer posted 11 months earlier. (With sufficient privileges you could see that there are already 3 completely or partially identical deleted answers too.) \$\endgroup\$
    – manatwork
    Jun 23, 2017 at 7:51
  • \$\begingroup\$ @manatwork Oops. Sorry. \$\endgroup\$
    – Joseph
    Jun 23, 2017 at 16:16
0
\$\begingroup\$

Swift 3, 20 bytes

print(Array(1...10))
\$\endgroup\$
1
  • \$\begingroup\$ Welcome on Programming Puzzle & Code Golf. About the downvote on your answer: it was automatically applied by the system when @Toto edited your answer from the "First Post" review queue; but no one actually downvoted it. Happy golfing! \$\endgroup\$
    – Dada
    Jun 23, 2017 at 8:44
0
\$\begingroup\$

MY (noncompeting), 3 bytes

Here's the hex:

0A 49 27

Finally, a reasonable solution. Explanation:

0A - Push 10 to the stack
49 - Pop n; Push [1 ... n]
27 - Pop n; Output n
\$\endgroup\$
0
\$\begingroup\$

Python 3, 24 bytes

print(list(range(1,11)))

Try it online!

\$\endgroup\$
0
\$\begingroup\$

Python 2, 19 Bytes

print range(11)[1:]

Try it online!

\$\endgroup\$
0
\$\begingroup\$

anyfix, 3 bytes

⁴RK

Note that TIO says that this is 5 bytes but that is because of the unicode character ; in the codepage of anyfix (which is the same as the Jelly codepage), this solution encodes to 3 bytes.

Explanation

⁴   10
 R  Range [1..10]
  K Join on spaces

Alternatively, ⁴RY separates by newlines. R⁴K and R⁴Y also work because one of the key features of anyfix is that it works with prefix, infix, and postfix (though K and Y will work regardless of what's on the stack because if the top of the stack is not a list or does not exist, then it will use the entire stack as a list). Alternatively, R⁴ or ⁴R and the @l interpreter flag will make it output [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]] because @l makes it output the stack as its string representation in Python.

Try it online!

\$\endgroup\$
1
5 6 7
8
9

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.