0

在命令式編程,使用的語句,你做的東西,如:調用語句調用的等效表達式是什麼?

a = 10 
b = a * 2 
print a # 20 

我一直在想,相當於在表達式中,應該是這樣的:

print with(a=10){with(b=a*2){return b}} 

這被寫入屠殺蟒蛇,但它應該沒關係,它應該說明我的意思。而不是改變程序中變量的狀態(它永遠保持改變),它會在塊範圍內改變它,對於該範圍內的任何表達式。

可能有這樣的事情的名字。我不知道任何純函數式語言,但是我認爲這種事情在分配語句不存在時對計算臨時值非常有用。有人知道它叫什麼,這種內置的語言是什麼,在哪裏我可以找到更多關於它的信息?

回答

2

嗯,有讓-綁定:

let a = 10 in 
let b = a * 2 in 
b 

那些存在於大多數函數式語言,雖然有時有不同的語法(最明顯的越軌,我知道是口齒不清,它採用(let ((a 10)) (let ((b (* a 2))) b));還有還有letreclet*,它們對分配的表達式可以引用的內容有不同的限制)。人們也可以在一個let中創建多個綁定。

請注意,形式上,它不會在短時間內更改變量,但會引入一個新範圍,並帶有新變量。

相關問題