码迷,mamicode.com
首页 > 其他好文 > 详细

通过Lambda表达式表示复合过程 SICP

时间:2015-01-23 20:01:20      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:

通过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)

通过Lambda表达式表示复合过程 SICP

标签:

原文地址:http://www.cnblogs.com/pengjunwei/p/4244940.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!