当前位置: 首页 > news >正文

湛江网站设计/灯塔网站seo

湛江网站设计,灯塔网站seo,企业网站系统设计,百度找不到 网站上一篇文章我参考了很多其它文章,自己对continuation也没有完全吃透,本篇继续贴出自己对continuation的 理解,希望大家看完后能理解continuation到底是一个什么东西,当然也希望能得到些反馈,例如看完之后是否能 对continuation有个…

上一篇文章我参考了很多其它文章,自己对continuation也没有完全吃透,本篇继续贴出自己对continuation的

理解,希望大家看完后能理解continuation到底是一个什么东西,当然也希望能得到些反馈,例如看完之后是否能

对continuation有个基本的了解,又或者我的解释有没有什么不对的地方.首先看一下tspl中对continuation的介

绍:

在对scheme表达式求值的过程中,一个scheme实现必须要追踪两样东西:(1)对什么求值(2)对那个值做些什么.考虑

下面表达式中的求值过程(null?x).

(if (null?x) (quote ()) (cdr x))

scheme实现首先要求值(null? x),然后基于求出来的这个值(在这里求出来的值是true或false)决定后面将要调用

(quote ()还是(cdr x).在这里,要求的值就是(null? x),或者说是对(null? x)求值,而后面根据这个值选择到底

是调用(quote ())还是(cdr x)就是对这个值将要做的事.

因此,在计算一个表达式的过程中的任何一个点,都存在着一个准备完成的continuation,或者说,存在一个将计算
继续下去的点.我们假设x有值(a b c),我们可以把对表达是 (if (null?x) (quote ()) (cdr x))的求值分隔成6个
continuations,它们分别在等待:(这段翻译得有点别扭)

1)(if (null? x) (quote ()) (cdr x))被求值

2)(null? x)被求值

3)null?被求值

4)x被求值(在(null? x)中

5)cdr 被求值

6)x被求值((在cdr x)中)

(cdr x)的continuation没有被列出来,因为它跟等待(if (null? x) (quote ()) (cdr x))被求值的continuation
是一样的.(这句不是很理解)

scheme允许我们通过call/cc捕捉任何表达式的continuation.我们必须以一个只有一个参数的过程作为参数调用call/cc,

call/cc把捕捉到的continuation当作参数传递给那个作为call/cc参数的过程.


从上面的介绍,可以了解,在每一个需要被求值的位置,都存在着一个continuation,一但这个位置被求值,或者说
等待到了它需要的值,后续的求值计算就可以continue.例如我们以上面列出的2)和4)举例,用c?表示一个等待求
值的位置来表示一个continuation:

2)(if c? (quote ()) (cdr x))

4)(if (null? c?) (quote ()) (cdr x))

如上面两个例子,整个表达式要想继续求值,首先要等待c?的位置被求值,由此可见一个continuation就是一个表达
式加上一个等待求值的位置,一但给等待位置提供了值,整个表达式就可以被求值了.

根据tspl的描述,我们可以通过call/cc捕获任何位置的continuation,并且可以把这个continuation绑定到某个变量
,在将来的某个时刻,把这个continuation当做一个过程调用,并给它传递一个值作为参数(参数的作用相当与给等待
求值的位置提供一个值)来继续求值它所代表的求值表达式.

下面看一个例子:

(define c #f)(define (test2 x)(if (call/cc (lambda (k)(set! c k) #t))    (quote ()) (cdr x))
)

call/cc所捕捉到的continuation相当于下面这样:

(define (test2 x)(if c? (quote ()) (cdr x))
)

下面在提示符下输入下面代码:
> (test2 '(1 2))
()
> (c #f)
(2)

可以看见,当我们执行(c #f)的时候,表达式继续求值了,并以#f为c?的值,输出了(2).而上面代码中用call/cc捕捉到的

continuation实际上与下面这段代码在效果上是等价的:

(define (create-continuation x)(lambda (val)(if val (quote ()) (cdr x))    ))

> (define c (create-continuation '(1 2)))
> (c #f)
(2)
> (c #t)
()

转载于:https://www.cnblogs.com/sniperHW/archive/2013/06/03/3115961.html

http://www.jmfq.cn/news/5272579.html

相关文章:

  • 网站用什么做备份/seo策略分析
  • 做亚马逊运营要看哪些网站/b站怎么推广
  • 设计网站的一般过程/产品推广活动策划方案
  • 江门网站开发/成免费的crm
  • 娱乐彩票网站建设制作/手机百度电脑版入口
  • 做企业网站设计价格是多少/网络营销比较常用的营销模式
  • wp网站打开太慢怎么做优化/合肥网络公司排名
  • 网站添加悬浮二维码/视频外链平台
  • 港湾有巢网站建设/热点事件
  • 金华电子商务网站建设/seo sem是什么意思
  • 企业网站 源代码/口红的推广软文
  • 手机如何做车载mp3下载网站/爱站长工具
  • 专门做餐饮ppt的网站/搜索引擎分类
  • 快速网站开发框架/百度怎么推广
  • wordpress 插件出错/站长之家seo查询官方网站
  • 多模室内设计网站/自动点击器
  • 网站建设能赚钱吗/合肥网络优化推广公司
  • 互联网与网站有哪些/搜索优化seo
  • 包装设计教程/上海网络优化服务
  • 昌吉网站建设哪家便宜/seo优化行业
  • 营销类网站建营销类网站建设/义乌最好的电商培训学校
  • 中英 网站模板 带手机版/营销软件网
  • 展示型网站开发/会员制营销方案
  • 微信公众号 做不了微网站吗/环球资源网官方网站
  • 有专门做房孑特卖的网站吗/seo搜索引擎优化课程
  • 医药网站建设方案/东莞关键词优化推广
  • 网站输入一级域名自动跳转二级域名/百度网盘客服电话人工服务
  • 做高仿网站/汕头搜索引擎优化服务
  • 十堰建网站/泉州百度首页优化
  • 做药材有什么好的网站/网上推广产品哪个网好