Example
Expression Returns
expression_returns.nr55 lines
expression_returns.nrneuro
// Example: Expression-Based Returns in Neuro
// Demonstrates implicit returns: a function body whose final expression is its
// value, with no `return` keyword.
//
// Every function below is called and printed, so the feature is visible in the
// program's output as well as in its exit code.
// Simple expression-based return
func double(x: i32) -> i32 {
x * 2
}
// Expression-based return with statements before
func calculate(a: i32, b: i32) -> i32 {
val sum: i32 = a + b
val product: i32 = a * b
sum + product
}
// Comparison expression as return
func is_positive(x: i32) -> bool {
x > 0
}
// Logical expression as return
func both_positive(a: i32, b: i32) -> bool {
a > 0 && b > 0
}
// Function call as expression return
func quad(x: i32) -> i32 {
double(double(x))
}
// Main entry point
func main() -> i32 {
val result1: i32 = double(5)
val result2: i32 = calculate(3, 4)
val result3: i32 = quad(2)
println("double(5) = {result1}")
println("calculate(3, 4) = {result2}")
println("quad(2) = {result3}")
// A `bool` renders in a hole just as a number does.
val positive: bool = is_positive(result1)
val both: bool = both_positive(result2, result3)
println("is_positive(10) = {positive}")
println("both_positive(19, 8) = {both}")
val total: i32 = result1 + result2 + result3
println("total = {total}")
total
}