假设我有一个函数在满足给定条件时返回某个值,并且在不满足条件时不返回任何值.
例如
fun foo(n)=如果n <100000则是n else(类似于exit函数.我们在其他编程语言中使用它.我们在这里有类似的东西吗?)
我最初想写()但是它说if或者两个条件不匹配.
变得更明确,我想编写一个函数,它接受一个数字,任何数字,如果它是有效整数,则组合成一个列表,如果它不是整数则忽略它.
在SML中,函数总是必须返回值¹.表示可能有或没有有用结果的函数的一种方法是使用该OPTION类型.如果它有一些有用的东西可以返回,或者如果没有,那么使用OPTION你的函数会返回.SOME valueNONE
对于您的特定用例,另一种方法是将列表作为第二个参数,然后将前置的结果返回到列表或列表不变.
¹事实上,我不知道任何允许非void函数不返回值的语言(不调用未定义的行为).在某些语言中,您可以返回null代替正确的返回值,但在大多数语言中,不允许返回类型的函数int.无论哪种方式,SML都没有空值.