fuzion-lang.dev — The Fuzion Language Portal
Sign up
Fuzion
•
Idioms
•
Idiom # 196: Pass a sub-array
Idiom # 196: Pass a sub-array
See
programming-idioms.org
:
Code
# fuzion arrays are immutable, we need to use mutate.array instead n := 20 m := 13 foo (E type : mutate, a container.Mutable_Array i32, i i32) ! E => a[i] := 42 mi : mutate is mi.instate_self ()-> a := (mi.array i32).new mi n 0 a.indices ! i -> a[i] := i (1..m : 2) ! i -> foo a i
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# fuzion arrays are immutable, we need to use mutate.array instead
n
:=
20
m
:=
13
foo (E
type
: mutate, a container.Mutable_Array i32, i i32) ! E
=>
a[i]
:=
42
mi : mutate
is
mi.instate_self ()
->
a
:=
(mi.array i32).new mi n
0
a.indices ! i
->
a[i]
:=
i
(
1
..m :
2
) ! i
->
foo a i
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
What are effects?
Running Example
ex196 is n i64 := 20 m i64 := 13 foo (E type : mutate, a container.Mutable_Array i64 E, i i64) ! E => a[i] := 42 mi : mutate is mi.instate_self ()-> a := (mi.array i64).new mi n 0 a.indices ! i -> a[i] := i say a ((i64 1)..m : 2) ! i -> foo a i say a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
ex196
is
n i64
:=
20
m i64
:=
13
foo (E
type
: mutate, a container.Mutable_Array i64 E, i i64) ! E
=>
a[i]
:=
42
mi : mutate
is
mi.instate_self ()
->
a
:=
(mi.array i64).new mi n
0
a.indices ! i
->
a[i]
:=
i
say a
((i64
1
)..m :
2
) ! i
->
foo a i
say a
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
What are effects?
last changed: 2025-05-13
next: NYI: Idiom # 197: Get a list of lines from a file