3.1 defun宏
来源:互联网 发布:水火箭 淘宝 编辑:程序博客网 时间:2024/06/08 17:28
3.1 defun宏
在Lisp中,像mark-whole-buffer这样的符号关联了代码,告诉计算机在调用函数时该做什么。这段代码被称为函数定义,使用defun开头。
函数定义的模板如下,有五部分(函数名,参数,可选的文档,交互式参数(可选),函数主体):
(defun函数名(参数...)
“可选的文档......”
(交互式参数传递信息);可选
函数主体...)
例如,
(defun multiply-by-seven (number)
"Multiply NUMBER by seven."
(* 7 number))
定义了一个数字(number)与7相乘。这个定义从括号和符号defun开始,后面跟着函数的名字。该函数的名称后面是一个包含将传递给该函数的参数的列表。由于参数列表中的名称对于函数定义来说是私有的,因此可以在函数体内更改此类符号的值,而不更改函数外的值。效果类似于由let表达式产生的效果。 (See let
.)参数列表后跟描述该函数的文档字符串。这就是您输入C-h f和函数名称时所看到的内容。顺便说一句,当你写这样的文档字符串,你应该使第一行完整的句子,因为一些命令,如apropos,只打印多行文档字符串的第一行。此外,如果您有一个文档字符串,则不应该缩进文档字符串的第二行,因为使用C-h f(describe-function)时看起来很奇怪。文档字符串是可选的,但它是如此有用,它应该包括在你写的几乎每个函数中。示例的第三行由函数定义的主体组成(大多数函数的定义当然比这个长)。在这个函数中,主体是列表(* 7 number),它表示将数值乘以7。(这个例子不是交互式的,更多信息请参阅Making a Function Interactive)。
(multiply-by-seven 3)
如果你评估这个例子,你可能会得到一个错误信息。(继续,尝试一下!)这是因为我们已经写了函数定义,但是还没有告诉计算机关于定义 - 我们还没有在Emacs中加载函数定义。安装函数是告诉Lisp解释器函数定义的过程。安装在下一节中介绍。
- 3.1 defun宏
- DEFUN宏定义
- DEFUN结构体解析
- zebra 命令定义的代码分析(DEFUN)
- quagga 命令定义的代码分析(DEFUN)
- 3.1.11 offsetof宏
- cocos2d-x-3.1常用宏
- 3.1、宏定义和使用分析
- cocos2d-x-3.1 常用宏 (coco2d-x 学习笔记五)
- 3.1
- 3.1
- 3.1
- 3.1
- 3.1
- 3.1
- 3.1
- 3.1
- 宏
- cache-control和pragma的区别
- Go 完整包列表
- javascript中 ”匿名函数赋值给变量“与“直接命名函数”有什么不同的作用?
- 基于注解的Spring MVC(下篇)
- gitlab 安装与502报错
- 3.1 defun宏
- h5编辑输入框的placeholder 的样式
- Unity安卓开发环境搭建
- jdbc连接数据库
- 使用Wireshark 在Mac上,抓iPhone的数据
- 对Netty服务端的 UpStream和DownStream的浅识
- linux 批量转换GBK到UTF-8编码的方法
- ReactNative0.44之后不能使用Navigator
- 启动web项目时报网页cookie重定向多次解决方法