LISP列表

  • 时间:
  • 浏览:54
  • 来源:it300
在传统的Lisp中,列表是最重要和最主要的复合数据结构。目前常用的lisp提供了其他数据结构,如vector、hash表、类或结构。在Lisp中,列表被构造成一个简单的记录结构链,名为cons,链接在一起。cons记录结构cons是包含两个称为car和cdr的组件的记录结构。cons单元格或cons是使用cons函数创建的值对。cons函数接受两个参数并返回包含这两个值的新cons单元格。这些值可以引用任何类型的对象。如果第二个值不是nil或另一个cons单元格,则这些值将以带圆括号的点对形式打印。cons单元格中的两个值称为car和cdr。car函数用于访问第一个值,cdr函数用于访问第二个值。例如,创建一个名为main.lisp的新源代码文件,并在其中键入以下代码。现场演示(write(cons 1 2))(terpri)(write(cons'a'b))(terpri)(write(cons 1 nil))(terpri)(write(cons 1(cons 2(cons 3 nil)))(terpri)(write(cons'a(cons'b(cons'c nil)))(terpri)(write(car(cons'a(cons'b(cons'c nil))))(terpri)(write(cdr(cons'a(cons'b(cons'c nil)))当您执行C时ODE,返回以下结果−(1.2)(a)b)(1)(1 2)(1 2 3)(a b c)a(b c)上述示例显示了如何使用cons结构创建单个链接列表,例如,列表(a b c)由三个由其cdr链接在一起的cons单元格组成。从图表上看,它可以在lispal中表示为列表,尽管cons单元格可以用于创建列表,但是,从嵌套的cons函数调用不是最佳解决方案。list函数更适用于在lisp中创建列表。list函数可以接受任意数量的参数,因为它是一个函数,它计算其参数。first和rest函数给出列表的第一个元素和其余部分。以下示例演示概念。示例1创建一个名为main.lisp的新源代码文件,并在其中键入以下代码。现场演示(写入(列表1 2))(terpri)(写入(列表“A”b))(terpri)(写入(列表1 nil))(terpri)(写入(列表1 2 3))(terpri)(写入(列表“A”b“C”)(terpri)(写入(列表3 4“A(Car)”(B)。c))(*4-2))(terpri)(write(list(list‘a’b)(list‘c’d’e)))执行代码时,返回以下结果−(1 2)(a b)(1 nil)(1 2 3)(a b c)(3 4 a b-8)((a b)(c d e))示例2创建名为main.lisp的新源代码文件并在其中键入以下代码。实时演示(defun my library(title author rating availability)(list:title:author:rating rating:availability availability))(write(getf(my library“饥饿游戏”“collins”9 t):title))执行代码时,返回以下结果–“饥饿游戏”列表操作功能下表提供了一些常见的ed list operating functions.sr.no.function

猜你喜欢

希腊最高法院批准俄罗斯对比特币嫌疑人的请求

希腊最高法院批准俄罗斯对比特币嫌疑人的请求希腊最高法院上周五表示,一名据称使用比特币数字货币洗钱40亿美元的俄罗斯人应该被引渡到俄罗斯,一位法院消息人士说。AlexanderV

2019-02-01

塑造美国网络防御的创造性破坏和自满情绪

塑造美国网络防御的创造性破坏和自满情绪创造性的破坏,思维的范式转换取代现有的秩序,可能是一个难以捉摸的概念,但它作为人类行为驱动力的力量是不可否认的。在硅谷和其他美国的高层科技

2019-02-01

为什么我(非常)担心PRISM

为什么我(非常)担心PRISM美国国家安全局正在利用我们的数字生活,监控语音电话,电子邮件,社交媒体以及谁知道什么。美国国家安全局方面的人说,这是为了国家安全;它已经停止了恐怖

2019-02-01

先发优势:为什么新的恶意软件最初会打败反恐

先发优势:为什么新的恶意软件最初会打败反恐虽然反病毒解决方案可以有效对抗广泛使用的恶意软件,但是有一个很好的机会,新的恶意软件会躲过那些解决方案。最近有重大安全事件的报告激增,

2019-02-01

台湾银行抢劫与朝鲜黑客有关

台湾银行抢劫与朝鲜黑客有关最近针对台湾一家银行的网络抢劫事件已被安全研究人员联系到一个据信在朝鲜境外活动的臭名昭着的威胁组织。黑客利用SWIFT全球金融网络大致窃取来自台湾远东

2019-02-01