4
Python實現河內塔,蟒蛇 - >計劃,顯示錯誤。我錯過了什麼?
import sys
def move(src, dst, tmp, num):
if num == 1: print 'Move from', src, 'to', dst
else:
move(src, tmp, dst, num-1)
move(src, dst, tmp, 1)
move(tmp, dst, src, num-1)
move('left', 'right', 'middle', int(sys.argv[1]))
給出了漢諾塔正確的解決方案。但我的方案端口,
(define move
(lambda (src dst tmp num)
(if (= num 1) (printf "Move from ~s to ~s \n" src dst)
((move src tmp dst (- num 1))
(move src dst tmp 1)
(move tmp dst src (- num 1))))))
給出正確的解決方案,但最終拋出以下錯誤。
procedure application: expected procedure, given: #<void>; arguments were: #<void> #<void>
我知道我的打印語句是拋出錯誤,但我不明白爲什麼會發生這種情況?
句法糖'(開始(移動...)(移動.. 。)...) – 2010-03-01 14:31:14
謝謝Nathan。 – 2010-03-01 14:36:44