たとえば、二次方程式x^2 + 2x + 1 = 0
は未知数に関する主張x
です。
したがって、 を代入するx = -1
と、 と等しいため、主張は成り立ちます0
。しかし、 を代入x = 1
すると、 が得られるため、主張は正しくありません4
。
今、いくつかの問題が実際に解決策であるかどうかをテストする関数を開発するように言われました。
以下のこれをどこから始めますか?
10x – 6 = 7x + 9
それはすべて、関数の選択された表現に依存します。それらをラムダとして渡す場合、「クレーム」が真か偽かをテストするのは簡単です。
(define (test-claim f1 f2 x)
(= (f1 x) (f2 x)))
For example:
; x^2 + 2x + 1 = 0, x = -1
(test-claim (lambda (x) (+ (* x x) (* 2 x) 1))
(lambda (x) 0)
-1)
=> #t
; x^2 + 2x + 1 = 0, x = 1
(test-claim (lambda (x) (+ (* x x) (* 2 x) 1))
(lambda (x) 0)
1)
=> #f
; 10x – 6 = 7x + 9, x = 5
(test-claim (lambda (x) (- (* 10 x) 6))
(lambda (x) (+ (* 7 x) 9))
5)
=> #t
; 10x – 6 = 7x + 9, x = 10
(test-claim (lambda (x) (- (* 10 x) 6))
(lambda (x) (+ (* 7 x) 9))
10)
=> #f