2013-01-22 75 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 

现在我们已经重新排列的表达式,所以运营商是第一位的,我们有一个有效的球拍表达。