2013-04-18 65 views
1

思考下面的表達式:計劃」的條件表達式和計算順序

(cond (p1 (some_complex_expression1)) 
     (p2 (some_complex_expression2)) 
     (p3 (some_complex_expression3)) 
     ... 
     (else (some_complex_expressionN))) 

是那些(some_complex_expressionX) S於需求評估? (即,'(some_complex_expressionX)'僅在謂詞本身之前被評估,pX爲真),或者它們是否遵循適用順序(在嘗試謂詞之前儘可能多地評估它們)

如果這是實現相關的,那些以下實現如何?

mit-scheme 
guile 
racket 
that scheme for sicp 
r5rs 

回答

4

在關聯的表達式被評估之前,測試必須返回一個真值。這是由計劃標準保證的;例如參見section 4.2.1 of R5RS

1

有關球拍上的血淋淋的細節,請參閱Reference Manual。對於這個問題,你在問關於cond的語義;那裏的文檔通過詳細說明在什麼條件下什麼是或者什麼不評估。