07-函数

Wan Yutong Lv2

提到函数这一概念,对于没有学习过计算机语言的人来说,可能会想到数学中的函数:一次函数,二次函数……,对于给定的自变量,具有一个唯一的函数值,在函数式编程中,同样存在这一概念,即:无副作用函数,但在过程式编程中,函数通常是有副作用的,也就是同样的输入,每次可能会得到不同的输出。在Alum中,一个函数是这样定义的:

1
fun F(Pn: PTn, ...): RT expression

其中F是函数的名字,就像sincos这样的,Pn是参数名,PTn是参数类型,RT是函数返回的类型。一个函数可以有多个参数,但只能有一个返回值。expression即函数体,需要注意的是,Alum{ }与其中包含的多个语句实际上组成一个单独的表达式(如果你想要了解代码块,可以回顾05-Block),也就是说,Alum并不强制你必须用一个{ }的代码块构成函数体,也可以是一个单独的return语句(在Alum中,必须显式的return,如果是void也要return nil)。
例如:

1
fun succ(n: int): int return n + 1

这样是完全可以的,甚至如果你想的话,也可以这么写:

1
2
3
4
5
6
7
fun fib(n: int): int return {
if n < 2 {
n
} else {
fib(n - 1) + fib(n - 2)
}
}

这与

1
2
3
4
5
6
7
fun fib(n: int): int {
if n > 2 {
return n
} else {
return fib(n - 1) + fib(n - 2)
}
}

的运行效果是一样的,但还是推荐后者,这样具有更好的可读性

  • Title: 07-函数
  • Author: Wan Yutong
  • Created at : 2026-02-28 18:40:25
  • Updated at : 2026-03-03 11:38:47
  • Link: https://cr0.dpdns.org/2026/02/28/07-Function/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments
On this page
07-函数