爲什麼不能將「if-then-else」結構模擬爲支持函數應用的解釋器中的函數? Scheme中的「let」函數類似於「if-then-else」嗎?解釋器,如果聲明並讓
3
A
回答
4
在方案的if
語句如下:
(if <predicate> <consequent> <alternate>)
和定義使得<consequent>
是評估只有當<predicate>
不假,使得<alternate>
是評估只有當<predicate>
是錯誤的。所以你可以看到像
(if #t (display "okay") (shut-down-the-nsa))
永遠不會真正關閉國家安全局。
但是,如果if
是一個函數,如:
(<operator> <operand> …)
那麼每個<operand>
總是被判斷。在if
聲明的上下文中,這意味着將對<consequent>
和<alternate>
進行評估 - 而不是if
。
+0
非常感謝您的幫助。 你能解釋一下關於「let」的功能麼? –
+1
@ sara_123讓我們只是語法糖。 (((x 2)(y 3))(+ x y))與((lambda(x y)(+ x y))2 3)相同,但並不一定以解釋器中的方式實現。 – WorBlux
相關問題
- 1. 有人可以向我解釋「如果讓」聲明是什麼?
- 2. #define聲明解釋
- 3. 解釋ADFS聲明規則
- 4. 解釋外殼聲明
- 5. 如果聲明讓我難堪
- 6. 如果聲明
- 7. 如果聲明
- 8. 如果聲明
- 9. 多,如果在列表解析聲明
- 10. PHP類聲明的解釋需要
- 11. 在C中解釋一個聲明#
- 12. 解釋函數聲明的語法
- 13. 泛型聲明類型的解釋
- 14. 的Java類聲明的解釋
- 15. 無法解釋的聲明命令JDBC
- 16. 解釋HRESULT的聲明/定義
- 17. 聲明解釋 - (IBAction)changeGreeting:(id)sender; iPhone
- 18. 的foreach循環,並聲明如果
- 19. 如果和包含聲明合併
- 20. 如果聲明VBA
- 21. Logo如果聲明
- 22. 如果url聲明
- 23. 如果聲明php
- 24. CSS如果聲明?
- 25. 如果聲明JAVA
- 26. 如果聲明 - Wordpress
- 27. WP:如果聲明
- 28. 如果聲明c#
- 29. MySQL如果?聲明
- 30. 如果聲明file_get_html簡單的HTML Dom解析器
你可以實現'if'作爲一個函數,但是如果你這樣做了,你需要編寫'then'和'else'部分函數,以便延遲它們的評估。 –