Let
Let 運算式可用來從變數的中繼計算擷取值。
let-expression:
let
variable-list in
expression
variable-list:
variable
variable ,
variable-list
variable:
variable-name =
運算式
variable-name:
identifier
下列範例顯示要計算並儲存在變數 x
、y
和 z
中,然後用於後續計算 x + y + z
的中繼結果:
let x = 1 + 1,
y = 2 + 2,
z = y + 1
in
x + y + z
此運算式的結果為:
11 // (1 + 1) + (2 + 2) + (2 + 2 + 1)
評估「Let 運算式」中的運算式時會發生下列情況:
變數清單中運算式會定義新的範圍 (其中包含「變數清單」結果中的識別項),且在評估「變數清單」結果中的運算式時必須存在。 「變數清單」中的運算式可能會彼此參考。
您必須先評估「變數清單」中的運算式,再評估「Let 運算式」中的運算式。
除非存取「變數清單」中的運算式,否則不得進行評估。
評估「Let 運算式」中運算式期間所引發的錯誤會進行傳播。
Let 運算式可視為隱含記錄運算式上的語法糖 (Syntactic Sugar)。 下列運算式相當於上述範例:
[ x = 1 + 1,
y = 2 + 2,
z = y + 1,
result = x + y + z
][result]