*****
this
is
a
multiline
comment
*****
# this is a single line comment
def add = fn((a, b), c) {
def z = a + b + c;
return z;
};
print "hello world!\n";
def result = add((1, 2), 6);
if result == 6 {
print "result is equal to 6\n";
} else if result < 6 {
print "result is less than 6\n";
} else if result > 6 {
print "result is greater than 6\n";
} else {
print "unreachable\n";
};
def a = 0d;
a = 1d;
select result {
case (6) {
print "result is 6\n";
}
case (_) {
print "result isn't 6\n";
}
};
# FFI: demonstrate both traditional and CFFI syntax
import 'example' './libexample.so';
def add_two = foreign 'example' 'add_numbers'(i32, i32) -> i32;
def cos_fn = foreign 'example' 'cosine'(f64) -> f64;
# Using explicit 'd' suffix for u32 literals in FFI calls
print "add_numbers(3, 4) via ffi => ";
print add_two(3d, 4d);
print "\n";
print "cos(0.0) from ffi: ";
print cos_fn(0.0f);
print "\n";
# CFFI convenience syntax
def example_lib = ?!CFFI_Load './libexample.so';
def cffi_add = ?!CFFI_Fn example_lib.add_numbers (i32, i32) -> i32;
def cffi_cos = ?!CFFI_Fn example_lib.cosine (f64) -> f64;