程序
语句序列可以包装到名为 procedure . 此外,过程可以接受参数。接受变量称为参数。
类型
写入参数类型为T的过程的类型
T -> 0
过程是一个子例程,它返回控制,但不返回值。为了有用,过程必须更改程序或其环境的状态。这叫做效应。
Felix中的过程是一流的,可以用作值。
定义
程序定义如下:
proc doit (x:int) {
println$ x;
x = x + 1;
println$ x;
}
过程在完成时可以显式返回控制。
proc maybedoit (x:int) {
if x > 0 do
println$ x;
return;
done
x = -x;
println$ x;
}
如果过程末尾没有return语句,则隐式插入一个。
过程可以有一个单位参数:
proc hello () {
println$ "Hello";
}
调用
使用call语句调用过程。标识符 call 可以省略。如果参数是单位,也可以省略。
proc hello () {
println$ "Hello";
}
call hello ();
hello ();
hello;