Standard control
Adama has many control and loop structures similar to C-like languages like:
And we introduce two non-traditional ones:
Diving Into Details
if
if statements are straightforward ways of controlling the flow of execution, and Adama's if behaves like most other languages.
public int x;
@construct {
if (true) {
x = 123;
} else {
x = 42;
}
}
if-as
Unlike most languages, Adama has a special extension to the if statement which is used for maybe. This allows safely extracting values out from the maybe.
int x;
@construct {
maybe<int> m_value = 123;
if (m_value as value) {
x = value;
}
}
while
while statements are a straightforward way to iterate while a condition is true.
int x = 10;
int y = 0;
while (x > 0) {
x --;
y += x;
}
do-while
do-while statements are a way to run code at least once.
int x = 10;
int y = 0;
do {
x--;
y += x;
} while (x > 0);
for
for statements are a common shorthand for while loops to initialize and step.
int y = 0;
for(int x = 10; x > 0; x--) {
y += x;
}
foreach
foreach statements are a shorthand for iterating over arrays
int y;
foreach (x in [1,2,3,4,5,6,7,8,9,10]) {
y += x;
}