1

新手问题:你会怎么用球拍写这个?

10x - 6 = 3x + 7

我很难弄清楚我应该把= 3x + 7.

4

2 回答 2

2

尝试这个:

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

当然,假设之前已经为x变量分配了一个值。现在,如果要将表达式作为函数的一部分进行评估(如标题所示),请执行以下操作:

(define (test x)
  (= (- (* 10 x) 6)
     (+ (*  3 x) 7)))
于 2013-01-22T17:08:29.510 回答
0

该语句的优先级组的数学约定如下:

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

在数学中,我们将运算符写在表达式的中间:foo OP bar,但在 Racket 中,运算符是第一位的:(OP foo bar)。因此,如果您只是将每个表达式打乱以匹配 Racket 方式,您将得到:

((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

既然我们已经重新排列了表达式,所以运算符放在第一位,我们就有了一个有效的 Racket 表达式。

于 2013-01-28T17:00:43.967 回答