球拍Lambda顺序说明

问题描述 投票:0回答:1
(define povrch-valce
(lambda (V h)
((lambda (r)
(* 2 r pi (+ r h)))
(sqrt (/ V pi h)))))

如果我正确理解这一点(V h是参数,并且主体为: ((lambda (r) ( * 2 r pi (+ r h))) (sqrt (/ V pi h)))

然后我们有lambda(r),参数是(r),主体是:

(* 2 r pi (+ r h)))
(sqrt (/ V pi h)))))

有人可以以最后的顺序处理我吗?我不知道如何计算(sqrt(/ V pi h)),即使其顺序是第二。

lambda racket
1个回答
0
投票

使用与代码一致的编辑器,例如DrRacket,该函数具有以下形式:

(define povrch-valce
  (lambda (V h)
    ((lambda (r)
       (* 2 r pi (+ r h)))
     (sqrt (/ V pi h)))))

povrch-valce是具有两个参数的函数,Vh,其主体为:

((lambda (r)
   (* 2 r pi (+ r h)))
 (sqrt (/ V pi h)))))

即(请注意两个括号):

(f (sqrt (/ V pi h)))

其中f是函数:

(lambda (r)
  (* 2 r pi (+ r h)))

这是应用了sqrt调用结果的函数。

因此,评估(povrch-valce 2 3)之类的步骤如下:

  1. 计算(sqrt (/ V pi h));结果是0.46065886596178063

  2. 将此值传递给函数f;结果是10.016548388032545

  3. 这是初始调用返回的值。

© www.soinside.com 2019 - 2024. All rights reserved.