如何使用方案在另一个函数中调用函数?
问题描述:
我正在学习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)
将调用计算,飞机与乘客和座椅参数)
答
方案的函数调用的语法(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))))
)
)
非常感谢您,是如此简单,只是语法。 –