2013-03-23 3 views
1

저는 Lisp을 사용하는 데있어 매우 익숙하며 기본 구문을 연구하고 있습니다. 변환하려는 : r1 = (-b + sqrt (b^2 - 4 * a * c))/(2 * a)
lisp 형식으로. 내가 생각하는 유일한 문제는 lisp이 -b를 내 기호 b의 음수 값으로 인식 할 수 없다는 것입니다. 이것은 내가 지금까지 혀짤배기 프롬프트에서 무엇을 가지고 :심볼을 Lisp에서 음수 값으로 지정

[17]> (setq a 1L0) 
1.0L0 
[18]> (setq b -1L0) 
-1.0L0 
[19]> (setq c -1L0) 
-1.0L0 
[20]> (setq r1 (+ (/ (sqrt (- (power b 2) (* (* 4 a) c))) (* 2 a)) -b)) 

*** - EVAL: variable -B has no value 
The following restarts are available: 
USE-VALUE  :R1  You may input a value to be used instead of -B. 
STORE-VALUE :R2  You may input a new value for -B. 
ABORT   :R3  Abort main loop 

답변

6

사용

(- b) 

B를 부정하는. 그것은

(- 0 b) 
+0

와 같습니다. 처음에는 다른 기호 -b를 1L0과 동일하게 설정하여 b를 부정하기 만합니다. 그것은 효과가 있었지만, 대답은 TI 계산기에 모든 것을 연결했을 때의 대답과 같지 않았습니다. 또한 이제는 같은 대답을 얻었습니다. -b를 설정했을 때와 같이 (b)를 사용하면 b를 무효화합니다. 내 구문이 r1 설정에 맞습니까? – DLR

+2

시도해보십시오 (/ (- (sqrt (- expt b 2) (* 4 a c))) b) (* 2 a)) – uselpa

+0

효과가 있습니다! 감사! 당신의 방법에서 B를 음수로 만들 필요가 있었지만, 정말 고마워요! – DLR