emacs中闭包的使用
来源:互联网 发布:营销数据分析的作用 编辑:程序博客网 时间:2024/05/19 10:38
http://blog.csdn.net/robinchenyu/article/details/8474876
* emacs中的closure
1. 首先要打开lexical-binding变量(setq lexical-binding t)
2. 测试程序
(let ((lst '(1 2 3 4 5 6 7 8 9)))
(setq get1 (lambda ()
(let ((x (car lst)))
(setq lst (cdr lst))
x)
)))
(funcall get1)
=> 1
(funcall get1)
=> 2
3. 对于闭包的理解
定义:Peter J. Landin 在1964年将术语 闭包 定义为一种包含 环境成分
和 控制成分的实体,用于在他的SECD 机器上对表达式求值。
对于闭包的理解,如果一个函数被定义在一个词法变量的域内,那么它就
能继续引用那个变量,即使这个函数作为值返回到了创建这个变量的上下
文之外。
当一个函数引用在它之外的一个变量时,这个变量就叫做自由变量。而引
用这个自由词法变量的函数叫做闭包。只要这个函数存在,这个变量就必
须存在。
这和c语言中的局部静态变量非常类似
0 0
- emacs中闭包的使用
- emacs中闭包的使用
- emacs的使用
- Emacs编辑器的使用
- emacs Mew的使用
- emacs的使用
- emacs-23.2的使用
- emacs + cscope 的使用
- Emacs的使用
- emacs的简单使用
- emacs 工具的学习使用
- 初学者使用Emacs的难点
- Emacs的使用和配置
- 初学者使用Emacs的难点
- 使用prelude的 emacs配置
- 常使用的Emacs命令
- emacs中markmode的使用
- emacs 使用
- OJ172
- handlebars.js笔记
- 电子词典--两次扫描文件发/链表法
- 如何计算两个有序整型数组的交集
- 构造函数和析构函数
- emacs中闭包的使用
- C# Redis实战(四)
- 重写、重载和重定义的区别
- 你还为数据库乱码烦恼吗?
- [数据结构复习]B树B+树
- C语言 求2/1+3/2+5/3+8/5+13/8+… 求出这个数列前20项的和。
- GIT常用命令 && GIT本地使用 && GIT报错解决 && GIT的忽略文件(ignore files)
- 一个绚丽的loading动效分析与实现!
- eclipse连接mysql数据库