Lisp在线运行

版本:
运行结果
教程手册
代码仓库
极速运行
交互输入
极速运行模式,更高效的运行,点击编辑器上方的运行按钮即刻体验吧。
以下是用户最新保存的代码
LISP 初体验 发布于:2021-08-11 13:16 XY坐标标注CAD插件 发布于:2021-06-11 15:25 format t 输出语句 发布于:2020-08-10 18:21 print 输出语句 发布于:2020-08-10 18:20 write 输出语句 发布于:2020-08-10 18:16 write-line 输出语句 发布于:2020-08-10 18:14 循环输出内容 发布于:2020-08-10 18:11 [更多]
显示目录

符号



符号

在LISP语言中,符号是表示数据对象和有趣的是它也是一个数据对象的名称。

是什么使得符号特殊之处在于他们有分别叫property list,或 plist.

属性列表

LISP可以让属性,以符号分配。例如,我们有一个'人'的对象。希望这个'人'的对象有像姓名,性别,身高,体重,住址,职业等属性是一些属性名称。

一个属性列表被实现为具有元素为偶数(可能为零)的列表。每对列表中的元素构成一个条目;第一个项目是指标,而第二个是该值。

当创建一个符号,它的属性列表最初是空的。属性是使用于asetf形式得到建立。

例如,下面的语句使我们能够分配属性标题,作者和出版商,以及相应的值,命名(符号)'书'的对象。

示例 1

创建一个名为main.lisp一个新的源代码文件,并在其中输入如下代码:

((write (setf (get 'books'title) '(Gone with the Wind)))
(terpri)
(write (setf (get 'books 'author) '(Margaret Michel)))
(terpri)
(write (setf (get 'books 'publisher) '(Warner Books)))

当执行代码,它返回以下结果:

(GONE WITH THE WIND)
(MARGARET MICHEL)
(WARNER BOOKS)

各种属性列表功能允许你指定的属性以及检索,替换或删除一个符号的属性。

get 函数返回符号的属性列表对于一个给定的指标。它的语法如下:

get symbol indicator &optional default

get 函数查找指定的指标给定的符号的属性列表,如果找到则返回相应的值;否则默认返回(或nil,如果没有指定默认值)。

示例 2

创建一个名为main.lisp一个新的源代码文件,并在其中输入如下代码:

(setf (get 'books 'title) '(Gone with the Wind))
(setf (get 'books 'author) '(Margaret Micheal))
(setf (get 'books 'publisher) '(Warner Books))
(write (get 'books 'title))
(terpri)
(write (get 'books 'author))
(terpri)
(write (get 'books 'publisher))

当执行代码,它返回以下结果:

(GONE WITH THE WIND)
(MARGARET MICHEAL)
(WARNER BOOKS)

symbol-plist函数可以看到一个符号的所有属性。

示例 3

创建一个名为main.lisp一个新的源代码文件,并在其中输入如下代码:

(setf (get 'annie 'age) 43)
(setf (get 'annie 'job) 'accountant)
(setf (get 'annie 'sex) 'female)
(setf (get 'annie 'children) 3)
(terpri)
(write (symbol-plist 'annie))

当执行代码,它返回以下结果:

(CHILDREN 3 SEX FEMALE JOB ACCOUNTANT AGE 43)

remprop函数从符号中删除指定的属性。

示例 4

创建一个名为main.lisp一个新的源代码文件,并在其中输入如下代码:

(adsbygoogle = window.adsbygoogle || []).push({});



(adsbygoogle = window.adsbygoogle || []).push({});
(setf (get 'annie 'age) 43)
(setf (get 'annie 'job) 'accountant)
(setf (get 'annie 'sex) 'female)
(setf (get 'annie 'children) 3)
(terpri)
(write (symbol-plist 'annie))
(remprop 'annie 'age)
(terpri)
(write (symbol-plist 'annie))

当执行代码,它返回以下结果:

(CHILDREN 3 SEX FEMALE JOB ACCOUNTANT AGE 43)
(CHILDREN 3 SEX FEMALE JOB ACCOUNTANT)
由JSRUN为你提供的Lisp在线运行、在线编译工具
        JSRUN提供的Lisp在线运行,Lisp 在线运行工具,基于linux操作系统环境提供线上编译和线上运行,具有运行快速,运行结果与常用开发、生产环境保持一致的特点。

title

使用此草稿 删除草稿

  • 00:23
注册登录后可减少验证码的弹出,点击前往 注册 | 登录

皮肤:

运行模式:

嵌入代码 iframe嵌入:


服务器已安装大部分常用的第依赖库,但仍可能存在一些未被安装的库, 可以通过本窗口立即安装所需依赖库。


请输入依赖库的名称:

请选择语言: