71
\$\begingroup\$

Input: Two integers. Preferably decimal integers, but other forms of numbers can be used. These can be given to the code in standard input, as arguments to the program or function, or as a list.

Output: Their sum. Use the same format for output integers as input integers. For example, the input 5 16 would lead to the output 21.

Restrictions: No standard loopholes please. This is , answer in lowest amount of bytes wins.

Notes: This should be fairly trivial, however I'm interested to see how it can be implemented. The answer can be a complete program or a function, but please identify which one it is.

Test cases:

1 2 -> 3
14 15 -> 29
7 9 -> 16
-1 8 -> 7
8 -9 -> -1
-8 -9 -> -17

Or as CSV:

a,b,c
1,2,3
14,15,29
7,9,16
-1,8,7
8,-9,-1
-8,-9,-17

Leaderboard

var QUESTION_ID=84260,OVERRIDE_USER=8478;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>

asked Jul 2, 2016 at 0:40
\$\endgroup\$
3
  • 31
    \$\begingroup\$ This is quite trivial, but not really simpler than, e.g., the Hello World catalog. Given that the ability to add integers is one of our two requirements for programming languages, I'd say it's worthwhile to have if properly specified. \$\endgroup\$ Commented Jul 2, 2016 at 0:48
  • 2
    \$\begingroup\$ Can the answer take input with preceding zeros as default? e.g. 5 16 is inputted as 005 016 \$\endgroup\$ Commented Dec 4, 2016 at 11:56
  • 1
    \$\begingroup\$ @FinW Sure. As long as they don't get interpreted as octal. \$\endgroup\$ Commented Dec 4, 2016 at 20:47

243 Answers 243

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

Visual Basic.NET, 39 bytes

Function F(x,y)
Return x+y
End Function

Without Option Strict On (which you definitely want for any real coding), no data types are required (As type).

With Option Strict On:

Function F(x As Integer,y As Integer) As Integer
Return x+y
End Function
answered May 17, 2017 at 21:31
\$\endgroup\$
0
\$\begingroup\$

Decimal, 12 bytes

81D81D41D301

Explanation:

81D ; builtin - read INT from STDIN, push to stack
81D ; builtin - read INT from STDIN, push to stack
41D ; math +, pop values used, push result
301 ; print from stack to STDOUT
answered Jun 4, 2017 at 21:31
\$\endgroup\$
1
  • \$\begingroup\$ TIO link coming as soon as the latest Decimal version is pulled to TIO. \$\endgroup\$ Commented Jun 4, 2017 at 21:33
0
\$\begingroup\$

Standard ML (MLton), 3 bytes

op+

Try it online!

An anonymous function that behaves as the + operator, on a tuple of two integers.

answered Jun 4, 2017 at 21:34
\$\endgroup\$
0
\$\begingroup\$

Check, 2 bytes

+p

Input is from command-line args.

+ adds the two numbers, and p prints it.

answered Jun 4, 2017 at 22:09
\$\endgroup\$
0
\$\begingroup\$

SQL, 19 bytes

SELECT SUM(a)FROM t

Our rules allow SQL to input via a pre-existing named table (in this case table t with INT field a), so just SUM it up and output the results.

Works for however many rows are in the input table.

answered Jun 14, 2017 at 17:04
\$\endgroup\$
0
\$\begingroup\$

Ruby, 17 bytes

def f(i,j)i+j;end

Functions in Ruby return the last evaluated expression.

totallyhuman
17.4k3 gold badges34 silver badges89 bronze badges
answered Jul 26, 2016 at 23:51
\$\endgroup\$
1
  • 3
    \$\begingroup\$ Anonymous Proc is also acceptable: ->i,j{i+j}. (You call it like ->i,j{i+j}[3,4].) \$\endgroup\$ Commented Jul 27, 2016 at 11:48
0
\$\begingroup\$

Element, 4 bytes

__+`

Explanation:

_ input to stack
_ input to stack
+ add top two stack elements
` pop to output

https://tio.run/##S81JzU3NK/n/Pz5eO@H/fyMFLmMA

answered Aug 7, 2017 at 5:56
\$\endgroup\$
0
\$\begingroup\$

Excel VBA, 8 Bytes

Anonymous VBE immediate window function that takes arguments from the range [A1:B1] and outputs their sum to the VBE immediate window

?[A1+B1]
answered Aug 7, 2017 at 13:27
\$\endgroup\$
0
\$\begingroup\$

MS Excel / Google Sheets, 6 Bytes

Anonymous Worksheet function that takes input from the range A1:B1 and outputs their sum to the worksheet cell that holds this formula.

=A1+B1
answered Aug 7, 2017 at 13:30
\$\endgroup\$
0
\$\begingroup\$

DUP, 37 bytes

[0[`32ドル-][10円*(48ドル-)+\%]#%]⇒II(I)+.

Both integers have to be space terminated (ASCII 32)

Explanation, taking example 11+3:

[0[`32ドル-][10円*(48ドル-)+\%]#%]⇒I {I defines an operator that converts space-terminated character strings to integer numbers}
[ ]⇒I {Definition of operator I}
 0 {push 0 on ds (data stack)}
 [cond.][ block ]# {while condition nonzero do block}
 ` {read character from STDIN to ds}
 $ {DUP ds top value}
 32- {push 32 on ds, SUB}
 \ {SWAP topmost ds values}
 10* {push 10 on ds, MUL}
 ( {move ds top value to rs (return stack)}
 $ {DUP}
 48- {push 48, SUB}
 ) {move rs top back to ds}
 + {ADD}
 \% {SWAP, POP}
 % {POP}

I reads in numbers as single characters and converts them to decimal numbers (basically by a base 10 shift left, add loop). I also checks if a terminating space is found, and if that’s the case, exits the read in loop and removes junk from the stack.

Actual program:

I {Read in first integer character by character}
 ( {move ds top to rs}
 I {read in second integer}
 ) {move first integer back from rs to ds}
 + {ADD}
 . {output sum to STDOUT}

Try it out in this online DUP interpreter.

answered Nov 21, 2017 at 22:43
\$\endgroup\$
0
\$\begingroup\$

ARBLE, 3 bytes

a+b

Try it online!

answered Nov 23, 2017 at 23:08
\$\endgroup\$
0
\$\begingroup\$

Spiral, 6 bytes

0;;+,!

Interpreter

answered Nov 29, 2017 at 7:06
\$\endgroup\$
0
\$\begingroup\$

Pyth - 5 Bytes

AQ+GH
A Set variables G and H to the first two elements of
 Q Input;
 Implicitly Print
 G G
 + plus
 H H
Laikoni
26.4k7 gold badges54 silver badges116 bronze badges
answered Dec 8, 2017 at 16:28
\$\endgroup\$
1
  • 1
    \$\begingroup\$ s? \$\endgroup\$ Commented Apr 15, 2018 at 0:56
0
\$\begingroup\$

SNOBOL4 (CSNOBOL4), 26 bytes

 OUTPUT =INPUT + INPUT
END

Try it online!

answered Dec 11, 2017 at 21:19
\$\endgroup\$
0
\$\begingroup\$

Beatnik, 9 bytes

x x kg ja

Try it online!

I/O in codepoint values, so !! -> B, B! -> c. Works with larger numbers on Unicode interpreters.

answered Feb 28, 2018 at 16:12
\$\endgroup\$
0
\$\begingroup\$

√ å ı \ ® Ï Ø ¿, 3 bytes

i+o

Try it online!

i+o
i takes input as a flattened list
 + adds
 o outputs
answered Mar 2, 2018 at 0:51
\$\endgroup\$
0
\$\begingroup\$

jamal, 22 characters

(12 characters code + 10 characters command line options)

{#+ {a} {b}}

Strictly because the question owner wrote "I'm interested to see how it can be implemented".

Sample run:

bash-4.4$ perl jamal.pl -Da=5 -Db=16 add.jam
21
answered Apr 12, 2018 at 8:57
\$\endgroup\$
0
\$\begingroup\$

m4, 19 characters

(9 characters code + 10 characters command line options)

eval(a+b)

Strictly because the question owner wrote "I'm interested to see how it can be implemented".

Sample run:

bash-4.4$ m4 -Da=5 -Db=16 <<< 'eval(a+b)'
21

Try it online!

answered Apr 12, 2018 at 9:01
\$\endgroup\$
0
\$\begingroup\$

Flobnar, 4 bytes

&
+@

Try it online!

answered Aug 12, 2018 at 20:21
\$\endgroup\$
0
\$\begingroup\$

F# (Mono), 3 bytes

(+)

In F#, the + operator is defined as a function named (+).

The following prints 3 and shows how to pass parameters to this function. To me, this is the clearest way to see that (+) is actually a function.

printf "%d" ((+) 1 2)

Try it online!

answered Dec 25, 2018 at 20:59
\$\endgroup\$
0
\$\begingroup\$

PHP, 20 bytes

Assuming the script will always have 2 arguments

<?php
$argv[0] = 10;
$argv[1] = 23;
?>
<?=array_sum($argv); // Well, all the arguments are stored on the $argv array
 // the array can just be added

Try it online!

answered Dec 27, 2018 at 12:59
\$\endgroup\$
0
\$\begingroup\$

RTFM, 24 bytes

Btw, it's my first answer on PPCG.

041 x 041 y 070 010[x,y]
answered Dec 27, 2018 at 13:41
\$\endgroup\$
1
  • 1
    \$\begingroup\$ Welcome to the site! \$\endgroup\$ Commented Dec 27, 2018 at 15:13
0
\$\begingroup\$
answered Apr 16, 2021 at 17:17
\$\endgroup\$
0
\$\begingroup\$

Ly, 2 bytes

+u

Try it online!

The + command adds the top two entries on the stack. And if there's nothing on the stack, it will read from STDIN. Then the u prints the results as a number.

answered Dec 18, 2021 at 9:39
\$\endgroup\$
0
\$\begingroup\$

Neutrino, 1 byte

+

Try it online!

Takes arguments on the command line. The language can't do very much :P

answered Jan 9, 2022 at 3:22
\$\endgroup\$
0
\$\begingroup\$

Kotlin, 10 bytes

var sum:(Int, Int) -> Int= 
{a,b->a+b}

Try it online!

answered Dec 19, 2021 at 8:51
\$\endgroup\$
0
\$\begingroup\$

Halfwit, 0.5 bytes

+

Try It Online!

Pretty obvious.

answered Feb 21, 2022 at 7:37
\$\endgroup\$
0
\$\begingroup\$

RubyGolf, 15 bytes

p gets.i+gets.i

code is so short it hit the character limit. ugh.

New language created by me, interpreter going up soon.

emanresu A
46.2k5 gold badges111 silver badges257 bronze badges
answered Oct 10, 2016 at 19:30
\$\endgroup\$
0
\$\begingroup\$

awk, 9-bytes

($_+=2ドル)_

echo "${test_data}\n-2 2" | gtee >( gcat -n >&2;) | 
awk '($_+=2ドル)_' 
  • no idea why slipping (......)_ works, but somehow it does. my best guess is that it's forcing a string concat with an empty string, thus allowing the zero to print properly.

.

 1 1 2
 2 14 15
 3 7 9
 4 -1 8
 5 8 -9
 6 -8 -9
 7 -2 2
3
29
16
7
-1
-17
0
answered Dec 19, 2022 at 4:17
\$\endgroup\$
2
  • \$\begingroup\$ using a number instead of _ works too, so it's not coerced to an empty string. i think it's just the normal truthy condition: unix.stackexchange.com/a/63897 \$\endgroup\$ Commented Dec 19, 2022 at 4:21
  • \$\begingroup\$ it's not being coerced to an empty string, but rather, with an empty string. maybe very minor diff grammatically, but totally opposite effects in awk. Also, setting a } 1' means empty rows get printed too, if that's the desired effect, while this (. . .)_ would print rows with numeric zero but skip actually empty rows. it's extremely subtle difference .... almost feel like i'm splitting the proton here. \$\endgroup\$ Commented Dec 19, 2022 at 4:39
0
\$\begingroup\$

Swift, (削除) 25 (削除ここまで) 20 bytes

var t:(_,_)->Int=(+)
answered Jul 23, 2023 at 22:44
\$\endgroup\$
1
...
5 6 7
8
9

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.