2013-01-22 78 views
1

新手問題:你如何在球拍中寫這個?如何在球拍中編寫功能

10x - 6 = 3x + 7 

我有一個困難時期試圖找出在那裏我會把= 3x + 7

+2

你描述的東西看起來不像一個函數。也就是說,'10x - 6 = 3x + 7'沒有明確的輸入輸出關係。其他答案試圖推斷一個,但我寧願我們不猜。你可以重述一下上面的內容,以便有輸入輸出關係嗎? – dyoo

回答

2

嘗試這種情況:

(= (- (* 10 x) 6) 
    (+ (* 3 x) 7)) 

當然,假設一個值已被預先分配給x變量。現在,如果表達式要被評估爲函數(如由標題所建議的)的一部分,則此操作:

(define (test x) 
    (= (- (* 10 x) 6) 
    (+ (* 3 x) 7))) 
+1

效果很好。謝謝 –

0

優先組的工科數學慣例該聲明像這樣:

((10 * x) - 6) = ((3 * x) + 7) 

在數學中,我們寫一個表達式中間的運算符:foo OP bar,但在Racket中,運算符是第一個:(OP foo bar)。所以,如果你只是洗牌周圍的每個表達式球拍的方式相匹配,您可以:

((10 * x) - 6) = ((3 * x) + 7) ;=> swap = and (10x - 6) 
(= ((10 * x) - 6) ((3 * x) + 7)) ;=> swap - and 10x 
(= (- (10 * x) 6) ((3 * x) + 7)) ;=> swap * and 10 
(= (- (* 10 x) 6) ((3 * x) + 7)) ;=> swap + and 3x 
(= (- (* 10 x) 6) (+ (3 * x) 7)) ;=> swap * and 3 

(= (- (* 10 x) 6) (+ (* 3 x) 7)) ;=> done 

現在我們已經重新排列的表達式,所以運營商是第一位的,我們有一個有效的球拍表達。