如何使用方案在另一个函数中调用函数?

如何使用方案在另一个函数中调用函数?

问题描述:

我正在学习Scheme,所以我正在做一个有两个功能的程序,一个根据飞行人数和飞机上座位的数量计算有多少架飞机将飞行。直到那里一切都好,问题是当我尝试在另一个中使用该功能时,我不知道该怎么做。如何使用方案在另一个函数中调用函数?

第一功能:

(define calculate-aeroplanes 
    (lambda (passengers seats) 
    (ceiling (/ passengers seats)))) 

关于第二个功能我想提出的费用为$ 1000每架飞机,如果是低于11架,从11飞机的费用将$ 500 ,每位乘客将收取50美元的费用。

这里我所做的:

(define fee-airport 
    (lambda (passengers seats) 
    (cond 
     ((< calculate-aeroplanes (passengers seats) 11) 
     (+ (* calculate-aeroplanes 1000) 
      (* passengers 50))) 
     ((> calculate-aeroplanes (passengers seats) 10) 
     (+ (* calculate-aeroplanes (passengers seats) 10000) 
      (* (- calculate-aeroplanes (passengers seats) 10) 500) 
      (* passengers 50)))))) 

在你的代码示例,您使用的++不是特别的,它只是一个简单的功能。要应用一个函数,你只需要把它放在表单的开头。

(calculate-aeroplanes passenger seats) 

将调用计算,飞机与乘客和座椅参数)

+0

非常感谢您,是如此简单,只是语法。 –

方案的函数调用的语法(function-name arguments),不function-name(arguments)。调用<,+等时使用正确的语法,但在调用calculate-aeroplanes时不使用。

+0

非常感谢! –

当时语法问题,这里由于是新代码:

(define fee-airport 
    (lambda(passengers seats) 
    (calculate-aeroplanes passengers seats) 
    (cond 
     ((< (calculate-aeroplanes passengers seats) 11) 
     (+ (* (calculate-aeroplanes passengers seats)1000) (* passengers 
      50))) 
     ((> (calculate-aeroplanes passengers seats) 10) 
      (+ (* (calculate-aeroplanes passengers seats)10000) (* (- 
      (calculate-aeroplanes passengers seats) 10) 500) (* passengers 
        50)))) 
     ) 
)