帮助功能作为参数?

时间:2015-01-21 11:00:06

标签: function lambda racket

我不知道如何解决我的一个问题。 我已经为我的主要功能编写了两个帮助功能,但它无法工作。

;;Main function
    (define (FunctionA a b c)
          (/(-(* -1 b) VariableD)aNotNull))

        (check-expect (FunctionA 1 1 1)-1)

;;Helpfunction1:
        (define (VariableD a b c)
            (if (> 0(-(* b b)(* 4 (* a c)))) (error "No negative numbers allowed") 
                (sqrt(-(* b b)(* 4 (* a c)))))) 

        (check-expect (VariableD 0 0 0) 0)
        (check-error (VariableD 1 2 3) "No negative numbers allowed")

;helpfunction2:
        (define (aNotNull a)
          (if (= 0 (* 2 a)) (error "Zerodivisor not allowed")
                 (* 2 a)))

        (check-error (aNotNull 0 ) "Zerodivisor not allowed")
        (check-expect(aNotNull 2) 4)

我得到错误:期望一个数字作为第二个参数,给定(lambda(a1 a2 a3)......) 但我不知道如何解决它。

希望你能帮帮我:)。

1 个答案:

答案 0 :(得分:0)

(define (FunctionA a b c)
  (/ (- (* -1 b) VariableD) aNotNull))

VariableD这里指的是您定义的函数。您可能希望使用a中的bcFunctionA输入来调用该函数,并使用FunctionA中的结果。

使用aNotNull同样如此。我只是推断这些是你想要在这个修订过的FunctionA中传递给这些函数的变量:

(define (FunctionA a b c)
  (/ (- (* -1 b) 
        (VariableD a b c))
     (aNotNull a)))