如何理解句子"或它评估到底"?

Fre*_*ind 4 functional-programming scala function

我在"scala中的函数式编程"一书中看到了这些句子:

如果表达式的求值永远运行或抛出错误而不是返回一个确定的值,我们说表达式不会终止,或者它的计算结果为bottom.如果表达式f(x)对于评估为bottom的所有x的计算结果为底部,则函数f是严格的.

抱歉我的英语不好,我发现自己无法理解这句话:

or that it evaluates to bottom
Run Code Online (Sandbox Code Playgroud)

我无法理解的两个部分:

  1. 是"它评估到底"与"表达不终止"相同,还是相反?
  2. "底部"在这里意味着什么?

谢谢

Jam*_*Iry 8

"评估到底部"是一种表达方式不能正常返回的方法:它抛出异常,陷入循环或停止程序.使用短语的原因是因为有时候假装所有表达式都计算为值是很方便的.一旦假装非返回表达式产生一个名为bottom的值,您就可以简化表达式交互方式的描述.

底部类型(在Scala中称为Nothing)是相关的:它是只能产生底部值的表达式类型(即不能正常终止).在Scala中,表达式"throw new RuntimeException()"具有底部类型(Nothing),在这个术语中我们会说它产生底部值.

"底部"一词的这些用法最初来自形式逻辑,然后通过形式语言语义进入编程.