通过Lambda表达式表示复合过程。
Code
#lang racket
(define(square x)
(* x x))
;求和记法定义程序模式
(define(sum term a next b)
(if(> a b)
0
(+(term a)
(sum term (next a) next b))))
;使用lambda表达式构造匿名函数
(lambda(x)(+ x 4))
(lambda(x)(/1.0(* x (+ x 2))))
;使用lambda构造pi-sum过程
(define(pi-sum a b)
(sum (lambda(x)(/1.0(* x (+ x 2))))
a
(lambda(x)(+ x 4))
b))
;使用lambda构造integral过程
(define(integral f a b dx)
(*(sum f
(+ a (/ dx 2.0))
(lambda(x)(+ x dx))
b)
dx))
;使用lambda作为组合式计算
((lambda(x y z)(+ x y (square z)))123)
;Test
(pi-sum 212)
时间: 2024-12-07 03:03:22