2
我目前正在研究方案,並遇到下列問題就來了:不同方案的程序「或」
證明或反駁了以下聲明: 過程我-或:
(define my-or
(lambda (test1 test2)
(if test1
#t
test2)))
的工作原理相同作爲內置程序「或」有兩個參數。 TIPP:
(或)=#F
(or <a1> ... <an>) = (if <a1>
#t
(or <a2> ... <an>))
,如果你反駁的聲明,發現其中兩個 程序之間的差異可以注意到的程序。我相信這兩個程序之間沒有區別,因爲它們對兩個參數的工作方式相同(這個樹形圖是基於過程if和or的球拍文檔描述的):??????????????????
if/or
.. ..
#f #t
.. ..
test2 outcome: #t
.. ..
#f #t
.. ..
outcome: #f outcome: #t
而且,因爲如果我重寫我的,或者是在第二TIPP 提到的方式,我仍然得到同樣的輸出,例如:
> (my-or (= 10 10) (> 2 5))
--> #t
> (my-or (> 23 42) (< 5 2))
--> #t
改寫:
> (if (= 10 10) #t (or (> 2 5)))
--> #t
> (if (> 23 42) #t (or (< 5 2)))
--> #f
困擾我的唯一問題是我們應該反駁聲明,因爲提到:「如果您反駁了聲明,找到一個程序可以注意到兩個程序之間的區別。」
這就是爲什麼我不知道是否有人有一個想法反駁的聲明,或者如果有人可以證實,否則我的想法如何證明聲明是正確的..
感謝您的回答遇到一個部門它失敗!我收到以下輸出: >(或#T(/ 1 0)) #T >(我的 - 或#T(/ 1 0)) /:除零 我想這表明我 - 或繼續評估test2,「或」,但是,只評估test1 ...這是我應該注意到的嗎? –
好吧 - 你的編輯很清楚:非常感謝! :) –
我已經試過了,只是發現,我必須等待 - 不知道之前!會做:)有一個美好的夜晚 - 或者爲你下午,我想! –