初心者の質問:これをラケットでどのように書きますか?
10x - 6 = 3x + 7
どこに置くかわからないのですが= 3x + 7
。
これを試して:
(= (- (* 10 x) 6)
(+ (* 3 x) 7))
もちろん、値が以前にx
変数に割り当てられていると仮定します。ここで、式が関数の一部として評価される場合(タイトルで示されているように)、次のようにします。
(define (test x)
(= (- (* 10 x) 6)
(+ (* 3 x) 7)))
優先順位の数学的な慣習は、そのステートメントを次のようにグループ化します。
((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
演算子が最初になるように式を再配置したので、有効なRacket式ができました。