2014-11-18 6 views
0

Scheme을 사용하여 두 개의 함수를 정의하려고합니다. 숫자 X 및 Y는 0.0001 미만 그렇지 않으면 False 차이가있는 경우가Scheme에서 함수 호출 중 오류가 발생했습니다.

(define (close_to x y)(if(< (abs (- x y)) 0.0001)(#t)#f)) 

사실 반환한다 : 하나는 다음과 같이 보이는 close_to 함수이다.

(define (improve x y)(average y /(x y))) 

이 평균을 반환해야합니다 : 두 번째 기능은이처럼 보이는 기능을 향상입니다

function call: expected a function after the open parenthesis, but received true

내가

(close_to 4 3.99999999) 

전화 : 그러나, 그것은 오류를 던지고 유지 y와 x/y. 마찬가지로, 나는 오류가 점점 오전 : 내가 전화

function call: expected a function after the open parenthesis, but received 1

(improve 1 2) 

내가 잘못 뭐하는 거지? 누구든지 나를 도울 수 있습니까?

+1

'#t'가 아니라'# t'입니다. '/ (x y)'가 아니라'(/ x y)'입니다. – uselpa

+0

예! 그것은 효과가 있었다. 감사!!! :) – paupau

+0

추신 Scheme이지 Lisp가 아니라 LISP가 아닙니다. –

답변

0

문제는 (#t) 및 (#f)입니다.

#t는 기능이 아닙니다. 첫 번째 것을 다음과 같이 다시 작성하십시오.

(define (close_to x y) 
    (if (< (abs (- x y)) 0.0001) 
    #t 
    #f)) 

다른 하나는 독자를위한 연습입니다.

+1

'(define (close_to x y) (<(abs (- x y)) 0.0001))'이됩니다. – uselpa

관련 문제