1
我有一個程序編寫來計算列表形式的派生詞,所以4x^3
表示爲(* 4 (expt x 3))
,我正在編寫一個測試套件來打印出結果。我有一個函數runtest
接受一個表達並相對於所述衍生物計算到x
並返回結果意想不到的輸出測試功能
(define (runtest test)
(display "diff x ")(display test)(display " => ")(display (diff 'x test)))
使結果顯示diff x expression => result
我有以下定義爲測試:
(define test1 '4)
(define test2 '(* 2 x))
(define test3 '(* 2 y))
(define test4 '(+ x (* x x)))
(define test5 '(expt x 4))
然後我把所有的測試放在一個列表中,這樣我就可以在列表中映射並返回結果:
(define test-suite (list test1 test2 test3 test4 test5))
,當我運行(map runtest test-suite)
而不是分別返回各自的我得到一個長長的名單,沒有換行,而不是時,我想:
diff x 4 => 0
diff x '(* 2 x) => '(+ (* 0 x) (* 2 1))
diff x '(* 2 y) => '(+ (* 0 y) (* 2 0))
diff x '(+ x (* x x)) => '(+ 1 (* 2 x))
diff x '(expt x 4) => '(* 4 (expt x 3))
我缺少什麼?