mirror of
https://github.com/Ed94/Odin.git
synced 2026-07-28 18:30:06 +00:00
Add "pure" procedure types
This commit is contained in:
@@ -1961,6 +1961,22 @@ relative_data_types :: proc() {
|
||||
fmt.println(rel_slice[1]);
|
||||
}
|
||||
|
||||
pure_procedures :: proc() {
|
||||
fmt.println("\n#pure procedures");
|
||||
|
||||
square :: proc "pure" (x: int) -> int {
|
||||
return x*x + 1;
|
||||
}
|
||||
|
||||
do_math :: proc "pure" (x: int) -> int {
|
||||
// Only "pure" procedure calls are allowed within a "pure" procedure
|
||||
return square(x) + 1;
|
||||
}
|
||||
|
||||
x := do_math(5);
|
||||
fmt.println("do_math(5) ==", x);
|
||||
}
|
||||
|
||||
main :: proc() {
|
||||
when true {
|
||||
the_basics();
|
||||
@@ -1993,5 +2009,6 @@ main :: proc() {
|
||||
union_maybe();
|
||||
explicit_context_definition();
|
||||
relative_data_types();
|
||||
pure_procedures();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user