Sum of Array: Difference between revisions
m →[[Java]]: Use Java header instead |
m Switch to header template |
||
Line 2: | Line 2: | ||
Compute the sum of the elements of an Array |
Compute the sum of the elements of an Array |
||
== |
=={{header|4D}}== |
||
[[Category:4D]] |
|||
ARRAY INTEGER($list;0) |
ARRAY INTEGER($list;0) |
||
For ($i;1;5) |
For ($i;1;5) |
||
Line 14: | Line 12: | ||
End for |
End for |
||
== |
=={{header|Ada}}== |
||
[[Category:Ada]] |
|||
Int_Array : array(1..10) of Integer := (1,2,3,4,5,6,7,8,9,10); |
Int_Array : array(1..10) of Integer := (1,2,3,4,5,6,7,8,9,10); |
||
Sum : Integer := 0; |
Sum : Integer := 0; |
||
Line 23: | Line 19: | ||
end loop; |
end loop; |
||
== |
=={{header|AppleScript}}== |
||
[[Category:AppleScript]] |
|||
set array to {1, 2, 3, 4, 5} |
set array to {1, 2, 3, 4, 5} |
||
set product to 0 |
set product to 0 |
||
Line 32: | Line 26: | ||
end repeat |
end repeat |
||
== |
=={{header|BASIC}}== |
||
[[Category:BASIC]] |
|||
10 REM Create an array with some test data in it |
10 REM Create an array with some test data in it |
||
20 DIM ARRAY(5) |
20 DIM ARRAY(5) |
||
Line 94: | Line 86: | ||
} |
} |
||
== |
=={{header|C sharp|C#}}== |
||
[[Category:C sharp]] |
|||
int value = 0; |
int value = 0; |
||
int[] arg = { 1,2,3,4,5 }; |
int[] arg = { 1,2,3,4,5 }; |
||
Line 111: | Line 101: | ||
foreach (int value in arg) sum += value; |
foreach (int value in arg) sum += value; |
||
== |
=={{header|Clean}}== |
||
[[Category:Clean]] |
|||
array = {1, 2, 3, 4, 5} |
array = {1, 2, 3, 4, 5} |
||
Start = sum [x \\ x <-: array] |
Start = sum [x \\ x <-: array] |
||
== |
=={{header|ColdFusion}}== |
||
[[Category:ColdFusion]] |
|||
<cfset myArray = listToArray("1,2,3,4,5")> |
<cfset myArray = listToArray("1,2,3,4,5")> |
||
#arraySum(myArray)# |
#arraySum(myArray)# |
||
== |
=={{header|Common Lisp}}== |
||
[[Category:Common Lisp]] |
|||
(reduce #'+ #(1 2 3 4 5)) |
(reduce #'+ #(1 2 3 4 5)) |
||
== |
=={{header|Delphi}}== |
||
[[Category:Delphi] |
|||
'''Compiler:''' [[All]] |
'''Compiler:''' [[All]] |
||
Line 139: | Line 122: | ||
end; |
end; |
||
== |
=={{header|E}}== |
||
[[Category:E]] |
|||
pragma.enable("accumulator") |
pragma.enable("accumulator") |
||
accum 0 for x in [1,2,3,4,5] { _ + x } |
accum 0 for x in [1,2,3,4,5] { _ + x } |
||
== |
=={{header|Erlang}}== |
||
[[Category:Erlang]] |
|||
Using the standard libraries: |
Using the standard libraries: |
||
Line 175: | Line 154: | ||
sum_tail(Tail, Head + Acc). |
sum_tail(Tail, Head + Acc). |
||
== |
=={{header|Forth}}== |
||
[[Category:Forth]] |
|||
: sum ( addr cnt -- n ) |
: sum ( addr cnt -- n ) |
||
0 -rot |
0 -rot |
||
Line 183: | Line 160: | ||
== |
=={{header|FreeBASIC}}== |
||
[[Category:FreeBASIC]] |
|||
dim array(4) as integer = { 1, 2, 3, 4, 5 } |
dim array(4) as integer = { 1, 2, 3, 4, 5 } |
||
Line 193: | Line 168: | ||
next |
next |
||
== |
=={{header|Groovy}}== |
||
[[Category:Groovy]] |
|||
[1,2,3,4,5].sum() |
[1,2,3,4,5].sum() |
||
Line 227: | Line 200: | ||
value += i; |
value += i; |
||
== |
=={{header|JavaScript}}== |
||
[[Category:JavaScript]] |
|||
var array = [1, 2, 3, 4, 5]; |
var array = [1, 2, 3, 4, 5]; |
||
var sum = 0; |
var sum = 0; |
||
Line 235: | Line 206: | ||
sum += array[i]; |
sum += array[i]; |
||
== |
=={{header|MAXScript}}== |
||
[[Category:MAXScript]] |
|||
arr = #(1, 2, 3, 4, 5) |
arr = #(1, 2, 3, 4, 5) |
||
result = 0 |
result = 0 |
||
for i in arr do result += i |
for i in arr do result += i |
||
== |
=={{header|OCaml}}== |
||
[[Category:OCaml]] |
|||
let a = [| 1; 2; 3; 4; 5 |] in |
let a = [| 1; 2; 3; 4; 5 |] in |
||
Array.fold_left (+) 0 a |
Array.fold_left (+) 0 a |
||
== |
=={{header|Perl}}== |
||
[[Category:Perl]] |
|||
'''Interpeter:''' [[Perl]] |
|||
my $var; |
my $var; |
||
my @list = (1, 2, 3); |
my @list = (1, 2, 3); |
||
Line 271: | Line 235: | ||
map { $acc += $_ } @list |
map { $acc += $_ } @list |
||
== |
=={{header|PHP}}== |
||
[[Category:PHP]] |
|||
$list = array(1,2,3,4,5,6,7,8,9); |
$list = array(1,2,3,4,5,6,7,8,9); |
||
echo array_sum($list); |
echo array_sum($list); |
||
== |
=={{header|Pop11}}== |
||
[[Category:Pop11]] |
|||
Simple loop: |
Simple loop: |
||
Line 292: | Line 252: | ||
appdata(ar, procedure(x); x + sum -> sum; endprocedure); |
appdata(ar, procedure(x); x + sum -> sum; endprocedure); |
||
== |
=={{header|Prolog}}== |
||
[[Category:Prolog]] |
|||
sum([],0). |
sum([],0). |
||
sum([H|T],X) :- sum(T,Y), X is H + Y. |
sum([H|T],X) :- sum(T,Y), X is H + Y. |
||
Line 300: | Line 259: | ||
X =45; |
X =45; |
||
== |
=={{header|Python}}== |
||
[[Category:Python]] |
|||
'''Interpeter:''' [[Python]] 2.5 |
'''Interpeter:''' [[Python]] 2.5 |
||
total = sum([1, 2, 3, 4, 5, 6, 7, 8, 9]) |
total = sum([1, 2, 3, 4, 5, 6, 7, 8, 9]) |
||
== |
=={{header|Raven}}== |
||
[[Category:Raven]] |
|||
0 [ 1 2 3 ] each + |
0 [ 1 2 3 ] each + |
||
== |
=={{header|Ruby}}== |
||
[[Category:Ruby]] |
|||
arr = [1,2,3,4,5] |
arr = [1,2,3,4,5] |
||
sum = arr.inject { |sum, item| sum + item } |
sum = arr.inject { |sum, item| sum + item } |
||
== |
=={{header|Scala}}== |
||
[[Category:Scala]] |
|||
val array = Array(1,2,3,4,5) |
val array = Array(1,2,3,4,5) |
||
val sum = array.foldLeft(0)(_ + _) |
val sum = array.foldLeft(0)(_ + _) |
||
Line 325: | Line 277: | ||
val sum = array.foldLeft(0){(currentSum, element) => currentSum + element} |
val sum = array.foldLeft(0){(currentSum, element) => currentSum + element} |
||
== |
=={{header|Seed7}}== |
||
[[Category:Seed7]] |
|||
const func integer: sumArray (in array integer: valueArray) is func |
const func integer: sumArray (in array integer: valueArray) is func |
||
result |
result |
||
Line 343: | Line 293: | ||
writeln(sumArray([](1, 2, 3, 4, 5))); |
writeln(sumArray([](1, 2, 3, 4, 5))); |
||
== |
=={{header|Smalltalk}}== |
||
[[Category:Smalltalk]] |
|||
#(1 2 3 4 5) inject: 0 into: [:sum :number | sum + number] |
#(1 2 3 4 5) inject: 0 into: [:sum :number | sum + number] |
||
== |
=={{header|Standard ML}}== |
||
[[Category:Standard ML]] |
|||
val array = [1,2,3,4,5]; |
val array = [1,2,3,4,5]; |
||
foldl op+ 0 array; |
foldl op+ 0 array; |
||
== |
=={{header|Tcl}}== |
||
[[Category:Tcl]] |
|||
Assuming the values are in a list named <tt>listname</tt>: |
Assuming the values are in a list named <tt>listname</tt>: |
||
set result [expr [join $listname +]] |
set result [expr [join $listname +]] |
||
== |
=={{header|Toka}}== |
||
[[Category:Toka]] |
|||
[ ( array size -- sum ) |
[ ( array size -- sum ) |
||
>r 0 r> 0 [ over i swap array.get + ] countedLoop nip ] is sum-array |
>r 0 r> 0 [ over i swap array.get + ] countedLoop nip ] is sum-array |
||
== |
=={{header|UNIX Shell}}== |
||
[[Category:UNIX Shell]] |
|||
'''Interpreter:''' NetBSD 3.0's ash |
'''Interpreter:''' NetBSD 3.0's ash |
||
Revision as of 04:23, 13 November 2007
![Task](http://static.miraheze.org/rosettacodewiki/thumb/b/ba/Rcode-button-task-crushed.png/64px-Rcode-button-task-crushed.png)
You are encouraged to solve this task according to the task description, using any language you may know.
Compute the sum of the elements of an Array
4D
ARRAY INTEGER($list;0) For ($i;1;5) APPEND TO ARRAY($list;$i) End for $var:=0 For ($i;1;Size of array($list)) $var:=$var+$list{$i} End for
Ada
Int_Array : array(1..10) of Integer := (1,2,3,4,5,6,7,8,9,10); Sum : Integer := 0; for I in Int_Array'range loop Sum := Sum + Int_Array(I); end loop;
AppleScript
set array to {1, 2, 3, 4, 5} set product to 0 repeat with i in array set product to product + i end repeat
BASIC
10 REM Create an array with some test data in it 20 DIM ARRAY(5) 30 FOR I = 1 TO 5: READ ARRAY(I): NEXT I 40 DATA 1, 2, 3, 4, 5 50 REM Find the sum of elements in the array 60 SUM = 0 70 FOR I = 1 TO 5: SUM = SUM + ARRAY(I): NEXT I 80 PRINT "The sum is ";SUM
C++
Compiler: gcc 4.0.2
int main( int argc, char* argv[] ) { int list[] = { 1, 2, 3 } ; int sum = 0 ; for( int i = 0 ; i < 3 ; i++ ) { sum += list[i]; } }
Alternate
#include <numeric> int main( int argc, char* argv[] ) { int list[] = { 1, 2, 3 } ; std::accumulate(list, list + 3, 0); return 0; }
template alternative
template <typename T> T sum (const T *array, const unsigned n) { T accum = 0; for (unsigned i=0; i<n; i++) accum += array[i]; return accum; }
#include <iostream> using std::cout; using std::endl;
int main (void) { int aint[] = {1, 2, 3}; cout << sum(aint,3) << endl; float aflo[] = {1.1, 2.02, 3.003, 4.0004}; cout << sum(aflo,4) << endl; return 0; }
C#
int value = 0; int[] arg = { 1,2,3,4,5 }; int arg_length = arg.Length;
for( int i = 0; i < arg_length; i++ ) value += arg[i];
Alternate
int sum = 0; int[] arg = { 1, 2, 3, 4, 5 }; foreach (int value in arg) sum += value;
Clean
array = {1, 2, 3, 4, 5} Start = sum [x \\ x <-: array]
ColdFusion
<cfset myArray = listToArray("1,2,3,4,5")> #arraySum(myArray)#
Common Lisp
(reduce #'+ #(1 2 3 4 5))
Delphi
Compiler: All
var Ints : array[1..5] of integer = (1,2,3,4,5) ; i,Sum : integer = 0 ; begin for i := 1 to length(ints) do inc(sum,ints[i]) ; end;
E
pragma.enable("accumulator") accum 0 for x in [1,2,3,4,5] { _ + x }
Erlang
Using the standard libraries:
% create the list: L = lists:seq(1, 10).
% and compute its sum: S = lists:sum(L).
Or defining our own versions:
-module(list_sum). -export([sum_rec/1, sum_tail/1]).
% recursive definition: sum_rec([]) -> 0; sum_rec([Head|Tail]) -> Head + sum_rec(Tail).
% tail-recursive definition: sum_tail(L) -> sum_tail(L, 0). sum_tail([], Acc) -> Acc; sum_tail([Head|Tail], Acc) -> sum_tail(Tail, Head + Acc).
Forth
: sum ( addr cnt -- n ) 0 -rot cells bounds do i @ + cell +loop ;
FreeBASIC
dim array(4) as integer = { 1, 2, 3, 4, 5 }
dim sum as integer = 0 for index as integer = lbound(array) to ubound(array) sum += array(index) next
Groovy
[1,2,3,4,5].sum()
[1,2,3,4,5].inject(0) { sum, val -> sum + val }
Haskell
For lists (sum is already defined in the Prelude):
values = [1..10] :: [Int] answer = sum values -- the easy way answer' = foldl (+) 0 values -- the hard way
To do the same for an array, just convert it lazily to a list:
import Data.Array values = listArray (1,10) [1..10] answer = sum $ elems $ values
IDL
result = total(array)
Java
int value = 0; int[] arg = new int[] { 1,2,3,4,5 }; for (int i: arg) value += i;
JavaScript
var array = [1, 2, 3, 4, 5]; var sum = 0; for(var i in array) sum += array[i];
MAXScript
arr = #(1, 2, 3, 4, 5) result = 0 for i in arr do result += i
OCaml
let a = [| 1; 2; 3; 4; 5 |] in Array.fold_left (+) 0 a
Perl
my $var; my @list = (1, 2, 3); $var += $_ for (@list);
Alternate
Libraries: List::Util
use List::Util 'sum'; my @list = (1, 2, 3); my $var = sum @list;
Alternate
# TMTOWTDI
my $acc = 0; my @list = qw(1 2 3) map { $acc += $_ } @list
PHP
$list = array(1,2,3,4,5,6,7,8,9); echo array_sum($list);
Pop11
Simple loop:
lvars i, sum = 0, ar = {1 2 3 4 5 6 7 8 9}; for i from 1 to length(ar) do ar(i) + sum -> sum; endfor;
One can alternativly use second order iterator:
lvars sum = 0, ar = {1 2 3 4 5 6 7 8 9}; appdata(ar, procedure(x); x + sum -> sum; endprocedure);
Prolog
sum([],0). sum([H|T],X) :- sum(T,Y), X is H + Y.
test
:- sum([1,2,3,4,5,6,7,8,9],X). X =45;
Python
Interpeter: Python 2.5
total = sum([1, 2, 3, 4, 5, 6, 7, 8, 9])
Raven
0 [ 1 2 3 ] each +
Ruby
arr = [1,2,3,4,5] sum = arr.inject { |sum, item| sum + item }
Scala
val array = Array(1,2,3,4,5) val sum = array.foldLeft(0)(_ + _)
This is a shortcut for
val sum = array.foldLeft(0){(currentSum, element) => currentSum + element}
Seed7
const func integer: sumArray (in array integer: valueArray) is func result var integer: sum is 0; local var integer: value is 0; begin for value range valueArray do sum +:= value; end for; end func;
Call this function with:
writeln(sumArray([](1, 2, 3, 4, 5)));
Smalltalk
#(1 2 3 4 5) inject: 0 into: [:sum :number | sum + number]
Standard ML
val array = [1,2,3,4,5]; foldl op+ 0 array;
Tcl
Assuming the values are in a list named listname:
set result [expr [join $listname +]]
Toka
[ ( array size -- sum ) >r 0 r> 0 [ over i swap array.get + ] countedLoop nip ] is sum-array
UNIX Shell
Interpreter: NetBSD 3.0's ash
From an internal variable, $IFS delimited:
sum=0 list="1 2 3" for n in $list do sum="$(($sum + $n))" done echo $sum
From the argument list (ARGV):
sum=0 for n do sum="$(($sum + $n))" done echo $sum
From STDIN, one integer per line:
sum=0 while read n do sum="$(($sum + $n))" done echo $sum
Interpreter: GNU bash, version 3.2.0(1)-release (i386-unknown-freebsd6.1)
From variable:
LIST='20 20 2'; SUM=0; for i in $LIST; do SUM=$[$SUM + $i]; done; echo $SUM