fuzion-lang.dev — The Fuzion Language Portal
Sign up
Fuzion
•
Idioms
•
Idiom # 202: Sum of squares
Idiom # 202: Sum of squares
See
programming-idioms.org
:
Code
# using map and Sequence.sum sum := (a.map x->x*x).sum # using map and fold sum := a.map x->x*x .fold i32.sum # using a loop for sum := 0, sum + q v in a q := v*v else say "sum is $sum" # using a tail-recursive function sum_of_squares (sum i32, s list i32) i32 => s ? nil => sum | c Cons => sum_of_squares (sum + c.head**2) c.tail
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# using map and Sequence.sum
sum
:=
(a.map x
->
x*x).sum
# using map and fold
sum
:=
a.map x
->
x*x
.fold i32.sum
# using a loop
for
sum
:=
0
, sum + q
v
in
a
q
:=
v*v
else
say
"sum is
$sum
"
# using a tail-recursive function
sum_of_squares (sum i32, s list i32) i32
=>
s ? nil
=>
sum
| c Cons
=>
sum_of_squares (sum + c.head**
2
) c.tail
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
What are effects?
Running Example
ex202 is a := [0, 8, 15, 47, 11] # using map and Sequence.sum sum_map => sum := (a.map x->x*x).sum say "sum is $sum" sum_map # using map and fold sum_map_fold => sum := a.map x->x*x .fold i32.sum say "sum is $sum" sum_map_fold # using a loop sum_loop => for sum := 0, sum + q v in a q := v*v else say "sum is $sum" sum_loop # using a tail-recursive function sum_tail_rec => sum_of_squares (sum i32, s list i32) i32 => s ? nil => sum | c Cons => sum_of_squares (sum + c.head**2) c.tail say "sum is {sum_of_squares 0 a.as_list}" sum_tail_rec
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
ex202
is
a
:=
[
0
,
8
,
15
,
47
,
11
]
# using map and Sequence.sum
sum_map
=>
sum
:=
(a.map x
->
x*x).sum
say
"sum is
$sum
"
sum_map
# using map and fold
sum_map_fold
=>
sum
:=
a.map x
->
x*x
.fold i32.sum
say
"sum is
$sum
"
sum_map_fold
# using a loop
sum_loop
=>
for
sum
:=
0
, sum + q
v
in
a
q
:=
v*v
else
say
"sum is
$sum
"
sum_loop
# using a tail-recursive function
sum_tail_rec
=>
sum_of_squares (sum i32, s list i32) i32
=>
s ? nil
=>
sum
| c Cons
=>
sum_of_squares (sum + c.head**
2
) c.tail
say
"sum is {
sum_of_squares
0
a.as_list
}"
sum_tail_rec
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
What are effects?
last changed: 2025-05-13
next: Idiom # 203: Calculate mean and standard deviation