10.3 连续(continuations)

从本章开始,我们讨论递归调用。我们已经看到过尾递归(tail recursion),这是进行递归调用的重要技术,不需要在栈分配任何空间。由于有了尾递归,写出的函数式列表处理函数,能够处理大型数据集,而不需要出一身汗。

我们已经使用尾递归重写了许多函数,利用累加器参数,但并不是每个函数都能这样重写。如果函数需要执行两个递归调用,那么,很显然不能用这种方式。(毕竟,它们不可能都在返回之前最后执行。)

时间: 2024-08-27 23:49:21

10.3 连续(continuations)的相关文章

java使用线程请求访问每次间隔10分钟连续5次,之后停止请求

java使用线程请求访问每次间隔10分钟连续5次,收到相应的时候停止请求 package com.qlwb.business.util; /** * * * @类编号: * @类名称:RequestTask * @内容摘要: 若开发者发出了回调通知,却没有收到兑吧ok响应时,开发者需重试5次,每次间隔10分钟. * @author:鹿伟伟 * @创建日期:2016年4月15日 下午4:25:20 * @修改人: * @修改日期: * @修改描述:简单描述修改的内容 * @version 1.0.

NGINX轻松管理10万长连接 --- 基于2GB内存的CentOS 6.5 x86-64

转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=190176&id=4234854 一 前言 当管理大量连接时,特别是只有少量活跃连接,NGINX有比较好的CPU和RAM利用率,如今是多终端保持在线的时代,更能让NGINX发挥这个优点.本 文做一个简单测试,NGINX在一个普通PC虚拟机上维护100k的HTTP长连接,然后查看NGINX和系统的资源利用率. 二 测试环境 1.服务端 硬件:双核2.3GHz,2GB内存 软

NGINX轻松管理10万长连接

一 前言 当管理大量连接时,特别是只有少量活跃连接,NGINX有比较好的CPU和RAM利用率,如今是多终端保持在线的时代,更能让NGINX发挥这个优点.本文做一个简单测试,NGINX在一个普通PC虚拟机上维护100k的HTTP长连接,然后查看NGINX和系统的资源利用率. 二 测试环境 1.服务端 硬件:双核2.3GHz,2GB内存 软件:CentOS 6.5, kernel 2.6.32,  gcc 4.4.7, nginx 1.4.7 IP:10.211.55.8 内核参数调整: $ /sb

10个常见的缓存使用误区

在日常工作中,开发者经常利用缓存来进行优化站点或优化应用程序.但在实际应用中,在使用缓存时,总是那么不尽如意.这什么原因呢?本文,笔者收集了最为常见的十大缓存误区以及使用建议.我们一起来看下 : 1.  依赖默认的序列化. 默认的序列化处理方式可能会消耗大量的CPU资源,特别是处理复杂类型数据时.所以建议要根据语音和环境的不同,采用最优化的序列化和反序列化方式. 2.  在单一缓存中存储大对象数据. 由于序列化和反序列化需要一定的资源开销,处于并发负载时,大对象图形数据的频繁读取有可能会让服务器

有用函数编程

<序> 感谢 关于本书 关于封面 第一部分 学习函数式思维 第一章 不同的思维 1.1 什么是函数式编程? 1.2 通往有用函数编程之路 1.3 用函数式编程提高生产力 1.3.1 函数范式 1.3.2 声明式编程风格 1.3.3 了解程序的执行 1.3.4 设计并发友好的应用程序 1.3.5 函数风格怎样形成代码 1.4 函数式编程演示样例 1.4.1 用声明式风格表达意图 1.4.1.1 用 LINQ 处理数据 1.4.1.2 用 XAML 描写叙述用户界面 1.4.1.3 声明式函数动画

linux PAM 用户登录认证

PAM(Pluggable Authentication Modules )是由Sun提出的一种认证机制.它通过提供一些动态链接库和一套统一的API,将系统提供的服务 和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序,同时也便于向系 统中添加新的认证手段.从本篇开始会总结一些常用的pam模块及其实现的功能,今天讲的是pam_tally2模块. 一.参数与场景 应用场景:设置Linux用户连续N次输入错误密码进行登陆时,自动锁定X分钟或永久锁

Smart210学习记录------块设备

转自:http://bbs.chinaunix.net/thread-2017377-1-1.html 本章的目的用尽可能最简单的方法写出一个能用的块设备驱动.所谓的能用,是指我们可以对这个驱动生成的块设备进行mkfs,mount和读写文件.为了尽可能简单,这个驱动的规模不是1000行,也不是500行,而是100行以内. 这里插一句,我们不打算在这里介绍如何写模块,理由是介绍的文章已经满天飞舞了.如果你能看得懂.并且成功地编译.运行了这段代码,我们认为你已经达到了本教程的入学资格,当然,如果你不

PHP面试题

1.不用新变量直接交换现有两个变量的值 (1)list($a,$b)=array($b,$a);(2)a=a+b,b=a-b,a=a-b 2.PHP数字金额转大小格式,同时说明思路 function daxie($num){ $da_num = array('零','一','二','三','四','五','六','七','八','九'); $return = ''; $len_num = strlen($num); if(!is_numeric($num) || $len_num < 0){ r

JCL笔记

本文转自<http://leowzy.iteye.com/blog/888931> ----------------------------------------------------------------------------- 整理笔记 很TM烦,不过效果确实蛮好的,所以...硬着头皮,接着写吧. 笔记内容: 作业控制语言JCL(类似UNIX下的shell语言)是批处理作业的用户与操作系统的接口 . 作业(作业步1,作业步2,……,作业步n),作业步1……作业步n是顺序执行的 .