📜  elisp 返回类型 - Lisp (1)

📅  最后修改于: 2023-12-03 14:40:57.977000             🧑  作者: Mango

Elisp 返回类型 - Lisp

Elisp 是一种函数式编程语言,最初是为 Emacs 编辑器而开发的。在 Elisp 中,函数是一等公民,能够被作为参数传递,也能够被赋值给变量。

在 Elisp 中,函数可以返回任何类型的值,包括数字、字符串、布尔值、列表、哈希表等等。

返回数字

在 Elisp 中,可以通过 +-*/ 等算术运算符进行数值计算,例如:

(+ 1 2 3) ; 返回 6
(- 5 2) ; 返回 3
(* 2 3) ; 返回 6
(/ 8 4) ; 返回 2

同时,Elisp 也支持比较运算符,如 =><>=<= 等等:

(= 1 1) ; 返回 t
(< 3 5) ; 返回 t
(>= 2 2) ; 返回 t
返回字符串

在 Elisp 中,可以使用双引号或单引号来表示字符串:

"Hello World!"
'Hello World!

Elisp 中的字符串可以使用 concat 函数进行拼接:

(concat "Hello " "World!") ; 返回 "Hello World!"
返回布尔值

在 Elisp 中,t 表示真,nil 表示假:

(eq t t) ; 返回 t
(eq t nil) ; 返回 nil

同时,Elisp 也支持逻辑运算符 andornot

(and t nil) ; 返回 nil
(or t nil) ; 返回 t
(not nil) ; 返回 t
返回列表

在 Elisp 中,列表是非常重要的数据结构,它是由树形结构组成的链表。使用 cons 函数可以将一个元素添加到一个列表的开头,使用 carcdr 函数可以访问列表的头部和尾部:

(cons 1 '(2 3)) ; 返回 (1 2 3)
(car '(1 2 3)) ; 返回 1
(cdr '(1 2 3)) ; 返回 (2 3)

同时,Elisp 也提供了一些列表处理函数,如 mapcarreducefilter 等等:

(mapcar '1+ '(1 2 3)) ; 返回 (2 3 4)
(reduce '+ '(1 2 3 4)) ; 返回 10
(filter (lambda (x) (>= x 2)) '(1 2 3 4)) ; 返回 (2 3 4)
返回哈希表

在 Elisp 中,哈希表可以使用 make-hash-table 函数进行创建,使用 puthash 函数可以将一个键值对添加到哈希表中,使用 gethash 函数可以访问哈希表中的值:

(setq myhash (make-hash-table :test 'equal))
(puthash "key1" "value1" myhash)
(gethash "key1" myhash) ; 返回 "value1"
总结

Elisp 是一门灵活、强大的编程语言,不仅支持多种数据类型的返回值,还提供了许多便捷的数据处理函数。使用 Elisp,可以轻松地实现各种复杂的功能。