fuzion-lang.dev — The Fuzion Language Portal
Sign up
Fuzion
•
Idioms
•
Idiom # 206: Switch statement with strings
Idiom # 206: Switch statement with strings
See
programming-idioms.org
:
Code
((container.ordered_map ["foo", "bar", "baz", "barfl" ] [foo, bar, baz, barfl])[str].unwrap.call) # NYI: This will need some syntax improvements: # # 1. better syntax for inline maps # 2. better syntax for inline funtions # 3. automatic unwrap and call # # example: # # switch str ["foo" => foo # "bar" => bar # "baz" => baz # "barfl" => barfl] # # where 'switch' is a feature declared similar to # # switch<T, U> (on T, m map<T, () -> U) => # m[on].unwrap.call #
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
((container.ordered_map [
"foo"
,
"bar"
,
"baz"
,
"barfl"
]
[foo, bar, baz, barfl])[str].unwrap.call)
# NYI: This will need some syntax improvements:
#
# 1. better syntax for inline maps
# 2. better syntax for inline funtions
# 3. automatic unwrap and call
#
# example:
#
# switch str ["foo" => foo
# "bar" => bar
# "baz" => baz
# "barfl" => barfl]
#
# where 'switch' is a feature declared similar to
#
# switch<T, U> (on T, m map<T, () -> U) =>
# m[on].unwrap.call
#
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
What are effects?
Running Example
ex206 is foo Function unit => ()->say "foo" bar Function unit => ()->say "bar" baz Function unit => ()->say "baz" barfl Function unit => ()->say "barfl" for str in ["bar", "foo", "barfl", "baz", "error" /* will cause a precondition failure! */] do ((container.ordered_map ["foo", "bar", "baz", "barfl" ] [foo, bar, baz, barfl])[str].get.call) # NYI: better syntax, e.g., # # switch str ["foo" => foo # "bar" => bar # "baz" => baz # "barfl" => barfl]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
ex206
is
foo Function unit
=>
()
->
say
"foo"
bar Function unit
=>
()
->
say
"bar"
baz Function unit
=>
()
->
say
"baz"
barfl Function unit
=>
()
->
say
"barfl"
for
str
in
[
"bar"
,
"foo"
,
"barfl"
,
"baz"
,
"error"
/* will cause a precondition failure! */]
do
((container.ordered_map [
"foo"
,
"bar"
,
"baz"
,
"barfl"
]
[foo, bar, baz, barfl])[str].get.call)
# NYI: better syntax, e.g.,
#
# switch str ["foo" => foo
# "bar" => bar
# "baz" => baz
# "barfl" => barfl]
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
What are effects?
last changed: 2025-05-13
next: Idiom # 207: allocate a list that is automatically deallocated