Add "pure" procedure types

This commit is contained in:
gingerBill
2020-05-23 13:38:06 +01:00
parent ef539696b9
commit aa029fe8d9
9 changed files with 72 additions and 17 deletions
+17
View File
@@ -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();
}
}