1
我想了解爲什麼我會得到我的結果。比方說,這是代碼和結果:Turbo Prolog執行命令
很抱歉,如果這是微不足道的,但沒有太多的來源網上關於這個...如果d的輸出(3)是有道理的我,那麼e(3)根本就沒有。 爲什麼在這種情況下移動寫入會顛倒順序?
我猜它與遞歸有關,但我仍然無知,爲什麼。
我想了解爲什麼我會得到我的結果。比方說,這是代碼和結果:Turbo Prolog執行命令
很抱歉,如果這是微不足道的,但沒有太多的來源網上關於這個...如果d的輸出(3)是有道理的我,那麼e(3)根本就沒有。 爲什麼在這種情況下移動寫入會顛倒順序?
我猜它與遞歸有關,但我仍然無知,爲什麼。
這是因爲在第一種情況:你先寫,然後遞歸調用d(N1)
,因此,例如d(3)
將write 3
,然後call d(2)
等等
在第二種情況:你第一次調用e(N1)
,然後寫這改變了順序,因爲例如e(1)
將調用e(0)
它將調用e(-1)
這會成功,然後e(0)
將write 0
然後e(1)
將write 1
等等...