首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

你能在LISP中使用'list‘命令得到点的表示吗?

在LISP(LISt Processing)语言中,列表是通过使用圆括号 () 来表示的,而不是使用 'list 命令。LISP是一种面向列表的编程语言,列表是LISP中最基本的数据结构之一。

如果你想要创建一个包含多个元素的列表,你可以这样做:

代码语言:txt
复制
(setq my-list '(1 2 3 4 5))

这里的 my-list 是一个包含了数字1到5的列表。

如果你想要得到一个点的表示,可能你是想要创建一个点对(pair)或者一个列表的最后两个元素。在LISP中,点对是通过 (a . b) 的形式来表示的,其中 ab 是任意表达式。例如:

代码语言:txt
复制
(setq point-pair '(1 . 2))

这里的 point-pair 是一个点对,包含了两个元素1和2。

如果你想要获取列表的最后两个元素,你可以使用 last 函数来获取列表的最后一个元素,然后再次使用 cdr 函数来获取除了最后一个元素之外的所有元素,这样就可以得到最后两个元素的点对表示:

代码语言:txt
复制
(setq last-two (cons (car (last my-list)) (cdr (last my-list))))

这里的 last-two 将会是一个点对,包含了 my-list 中的最后两个元素。

请注意,LISP的语法和函数可能会根据不同的实现(如Common Lisp, Scheme等)有所不同。上述代码示例是基于Common Lisp的语法。

如果你遇到了具体的问题或者错误,可以提供更多的上下文,以便给出更精确的解答。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

日拱一卒,伯克利教你用Lisp写递归,写完后我感觉代码更溜了

这些当中symbol类型是Python当中我们没有遇到过的。符号的行为很像是Python中的字符串,但不完全一致。现在,你可以把一串有效的Scheme字符表示成一个symbol。...在Scheme中,除了表示False的#f之外所有的变量都会被当做True。我们提供的特别版的Scheme解释器能够允许你使用Python中的True False来代替#t和#f,不过这并不是标准。...> 你能发现为什么这是一个特殊格式吗?...为了更好的理解,首先观察下面这个pair构造: 这被称为malformed list(畸形),因为它调用cdr得到的不是一个well-formed list或者是nil,因为你依然可以看到点。...我们可以使用欧几里得算法: 如果较大值能够被较小数整除,答案为较小数 否则为较大数关于较小数的余数和较小数的最大公约数 用代码表示,如果a大于b那么: 你可能会觉得min和max过程很有用: (define

67440

不管是嵌套 XML,还是 Lisp 嵌套括号,还是 XXX 的 Map 数据结构,一切都是树形结构——映射。Lisp的本质(The Natur

我把我的想法说给Lisp程序员听, 遭到了他们的反对。"这些东西本身当然不可能用熟悉的知识来解释, 这些概念完全与众不同, 你不可能在别人已有的经验里找到类似的东西",可是我认为这些都是遁词。...再看一回我们刚才说的Task任务。祝贺你呀, 你在看Lisp代码!!! 我说什么? 一点都不像 Lisp吗? 没关系, 我们再给它收拾一下。...同样的, 设想一下, Ant是把XML数据当作自己的参数。在Lisp中, 我们给表加一个前缀'来表示数 据。...同样的, 比较一下你以前所做的工作, 你就会明白Lisp带来的好处。 接下来 学习Lisp就像战争中争夺山头。...学会Lisp也可能意味着明天你可能会被解雇, 因为你总是 强调, 如果公司所有软件都用Lisp写, 公司将会如何卓越, 而这些话你的同事会听烦的。 Lisp值得努力学习吗?

1.4K20
  • 函数式编程简介

    针对其中第2个决定数学基础的问题——算术公理之相容性,年轻的哥德尔提出了哥德尔不完备定理,解决了这个问题形式化之后的前两点,即数学是完备的吗?数学是相容的吗?哥德尔用两条定理给出了否定的回答。...[y] ((x x) y))))))) Lisp、ML以及Haskell的关系 Lisp是动态语言,使用S表达式 ML和Haskell都是静态强类型函数式语言 ML...是第一个使用Hindley-Milner type inference algorithm的语言 Lisp和ML都是call-by-value,但是Haskell则是call-by-name Lisp...基本上能在常数时间内完成编辑。Zipper数据结构模仿了这种方式,能在常数时间内完成树的编辑工作,也能很快地重新构建一棵树。 ? 不可变的树状结构 递归 可计算很大问题就是得实现递归功能。...首先一定得理解:每个tranducer函数都是同构的!

    1.7K41

    Lisp语言简介_c++是什么语言

    这个比较小众的编程到底是什么~ ————————————————————————— LISP(全名LISt Processor,即列表处理语言),由约翰·麦卡锡在1960年左右创造的一种基于λ演算的函数式编程语言...LISP语言的主要现代版本包括Common Lisp和Scheme。 基本介绍 LISP 是第一個函數型程式語言,区别于C/Java等命令型编程语言。...Lisp的表达式是一个原子(atom)或表(list),原子(atom)又包含符號(symbol)與數值(number);表是由零个或多个表达式组成的序列,表达式之间用空格分隔开,放入一对括号中,如:...在 Lisp 中我们习惯用原子 t 表示真,而用空表 () 表示假。...反之一个被引用的表仅仅被视为表 > (atom ‘(atom ‘a))() 引用看上去有些奇怪,因为你很难在其它语言中找到类似的概念,但正是这一特征构成了 Lisp 最为与众不同的特点——代码和数据使用相同的结构来表示

    2.4K21

    什么是元编程?

    Employeeb 不就是和数据表映射的Domain对象吗? 你的代码实现了Object-relational mapping !”...“其实吧,这个Employee的类没有必要在编译期存在,如果能在运行时动态地生成就行了。” 运行期动态生成? 张大胖有点懵。...“对于Java语言来说,运行期在内存中动态生成一个Class,还是有难度的,你需要透彻理解Java Class的文件格式,还需要在底层需要用ASM这样的东西去操作Java字节码。”...Bill看到张大胖发呆的样子,说道:”经过上述处理,内存中创建了一个类,如果把它的源码展示一下,你就明白了。”...有人甚至说,LISP根本不是编程语言,它是编程元语言,专门为了生成程序而生。” 张大胖听得云里雾里,黯然道:“不知道你在说什么,太抽象了!等我学学LISP以后再回来和你讨论吧。”

    91240

    为什么Lisp语言如此先进?(译文)

    在Lisp语言中,函数与整数或字符串一样,也属于数据类型的一种。它有自己的字面表示形式(literal representation),能够储存在变量中,也能当作参数传递。...代码使用符号和常量组成的树形表示法(notation)。   9. 无论什么时候,整个语言都是可用的。Lisp并不真正区分读取期、编译期和运行期。...如果你创造了一种新语言,其中有car、cdr、cons、quote、cond、atom、eq这样的功能,还有一种把函数写成列表的表示方法,那么在它们的基础上,你完全可以推导出Lisp语言的所有其他部分。...六、 就算Lisp确实代表了目前主流编程语言不断靠近的一个方向,这是否意味着你就应该用它编程呢? 如果使用一种不那么强大的语言,你又会有多少损失呢?有时不采用最尖端的技术,不也是一种明智的选择吗?...你实际上就是在做同样的事,只不过划出了一个独立的区域,保存累加器函数,区别只是保存在对象的一个属性中,而不是保存在列表(list)的头(head)中。

    1.2K60

    《代码英雄》第三季(7):与机器对话

    不过,举个例子来说,他可能在他最著名但并未实现的程序中描述过(这只是一个思路),人工智能是一个 接受建议者(advice taker)。...因为我的下一个问题是 LISP 和人工智能之间的关系。接受建议者第一次描述了 AI 的功能,它听起来也像是 LISP 的开始。能跟我聊聊更多 LISP 和人工智能之间的关系吗?...所以,像 LISP 这样,用列表的形式给出指令的语言 —— 这也是其名称的来源,基于列表的处理(LCTT 译注,LISP 全称:“LISt Processing“)。...麦卡锡打赌,10 年后,电脑将能够在国际象棋比赛中赢过利维。但是,如果事情进展得那么顺利,那就不是《代码英雄》的故事了。那时候麦卡锡还不知道,人工智能的冬天就要来了。...我们的硬件比当初好了太多太多,人们能用 GPU 替代 CPU,也能在大规模集群中使用这些 GPU 来训练巨大的机器学习模型,从而产生真正准确的预测。

    27930

    汉诺塔——各种编程范式的解决

    然后我们用pair串成的list来表示一个汉诺塔问题的解。 ...Prolog是明显不同于之前的几种编程语言,它使用的是逻辑范式,使用谓词演算来计算。...思考   我还是留下几个思考给读者:   1.可不可以证明对于n个盘,上述的2n-1步是最少的移动步数?   2.可以证明“现实中的玩法”的正确性吗?...对于“现实中的玩法”,可以用计算机语言实现吗?   3.这个问题有点意思,对于n个从小到大的盘,全部放在3个柱子中任何一个柱子上,每个盘任意放,但要满足大盘不可以压小盘上。这有很多种不同的放法。...比如上图中下面的情况就是6个盘随便给定的一个放法,满足大盘不压小盘。   初始的时候n个盘都在第一根柱子上,可不可以使用汉诺塔的规则一步步移动到某个给定的放法?再进一步,可以编程解决吗?

    1.9K30

    如何创建和维护你自己的 man 手册

    Um 是一个命令行实用程序,可以用于轻松创建和维护包含你到目前为止所了解的所有命令的 man 页面。 通过创建自己的手册页,你可以在手册页中避免大量不必要的细节,并且只包含你需要记住的内容。...如果你想创建自己的一套 man 式的页面,“Um” 也能为你提供帮助。 在这个简短的教程中,我们将学习如何安装 “Um” 命令以及如何创建自己的 man 手册页。...目前,它只能在 Linux 系统中使用 Linuxbrew 软件包管理器来进行安装。...你可以在 man 手册中添加你所需要的所有部分。不过你也要确保为每个部分提供了适当且易于理解的标题。 完成后,保存并退出文件(如果使用 Vi 编辑器,请按 ESC 键并键入:wq)。...$ um edit dpkg 要使用 Um 查看新创建的 man 手册页列表,请运行: $ um list 所有手册页将保存在主目录中名为 .um 的目录下 以防万一,如果你不想要某个特定页面,只需删除它

    1.1K20

    几种编程语言的优缺点

    比如,Lisp 机器,是上世纪 50 年代对 Lisp 计算模型的实现。Lisp 模型是基于 lambda 代数的一种计算语言表示法,后者是与图灵机同构的一种模型。...但是这二者是同等能力的。它们同样精确的表示了计算机能干什么。 Lisp 机现在不是很流行了,除了在跳蚤市场里。从谁更受欢迎来说,冯·诺曼机器赢了。...C++是个很好玩的游乐场,而如果你把它玩儿得门儿清的话你会觉得自己特牛,所以你总是被诱惑把你知道的所有的东西都用上。...有一个执行助理把你从琐事中解救出来让你有时间去思考那些真的需要你去解决的问题; 没有的话你将不得不花一半的时间在那些无聊的世俗的事情上。...Java 正是我们应该在亚马逊推荐使用的语言。 你就是得小心点儿,因为和其他任何语言一样,你能很容易找出一堆人,他们很懂一门语言及其编程环境,但对品味,计算或者其他任何重要的东西却一无所知。

    3.5K110

    Scheme语言实例入门--怎样写一个“新型冠状病毒感染风险检测程序” 1,表达式2,原子3,表(list) 4,点对(pair)5,向量(vector)6,变量7,

    现在孩子宅在家 ,想让他学点什么好几次冒出学编程的想法都被自己给否决了,直到我看到数学老师要求同学们整理小学阶段的数学公式、概念,我看到有一个小朋友居然画出了平面几何体的“继承”关系,让我眼前一亮:这种抽象关系如果用程序来表示不正合适吗...可以使用quote操作符定义一个符号,也可以单引号'开头来简单表示一个符号,如下面的示例: > (quote a) a >'a a 在Lisp/Scheme 中,通常都需要对表达式进行求值,而符号(通常...S-表达式 Lisp 要求我们直接在抽象语法上工作。这个抽象的语法树用成对的括号表示。这样的结构在 Lisp 圈子里面被称为 sexp 表达式,俗称S-表达式。...这就是Lisp 表示法一个美丽的地方是:它是如此的简单! 3,表(list) 表是由多个相同或不同的数据连续组成的数据类型,它是编程中最常用的复合数据类型之一,很多过程操作都与它相关。...笔者保留对本文和程序源码的版权。 如果你需要使用本程序的任何部分,包括设计方案、部分源代码,用于商业用途,你需要取得笔者本人的许可,违者必究!

    1.5K20

    你知道Linux系统中find命令的使用方法吗?

    今天小编带给大家的文章是关于Linux系统中find命令的使用方法。...熟悉Linux的小伙伴可能会对这个命令有所了解,但小编相信很多小伙伴对它没有深入的了解,下面小编就来和大家谈一谈关于Linux系统中的find命令的使用方法。...find命令特点:文件查找,实时查找,速度略慢,精确匹配 使用格式:# find [options] [查找路径] [查找条件] [处理动作] 查找路径:默认为当前目录 查找条件:默认为查找指定路径下的所有文件...意义同-ctime +#:表示(#+1)天之外被访问过 -#:表示#天之内被访问过 #:表示在#的时间段内被访问过 · 查找/tmp目录下权限为644的文件:# find /tmp...-atime -30 //括号内侧的两端都需要加空格 组合条件: -a:与,同时满足,如果组合条件中只有-a,可以省略 –> # find /tmp -user hadoop [-a] -name “

    1.4K10

    Emacs 折腾记

    作为一名在 Windows 下使用了多年 gVim 的少年,已然把它在我需要的地方都收拾得服服贴贴,可以说 Vim 经过配置配置,上得厅堂下得厨房,基本能满足我的所有幻想。...在 ~/.emacs 文件里加上: 这样就能在大部分地方(除了 eshell 等外)默认进入 Evil 模式使用 Vim 的编辑习惯了。...Common Lisp 开发环境 学习 Common Lisp 是使用 Emacs 最主要的任务,配好了文本编辑,当然得先把 Common Lisp 开发环境配置好了。...start python % 使用 Emacs 的运行外部命令的方法 M-!...在 ~/.emacs 文件中添加 这个 3 表示在距离屏幕上下边缘还有 3 行的时候再移动光标即自动滚屏,方便随时能看到当前编辑行的上下文,可以根据自己的使用习惯调整。

    1.3K20

    Emacs 折腾记

    作为一名在 Windows 下使用了多年 gVim 的少年,已然把它在我需要的地方都收拾得服服贴贴,可以说 Vim 经过配置配置,上得厅堂下得厨房,基本能满足我的所有幻想。...我工作中倒并没有用得到 Lisp 的地方,但是最近眼前晃过的一些书,比如《计算机程序的构造和解释》、《码农》杂志第 13 期,都对这门古老的语言推崇备至,还有垠神也撰文《Lisp 已死,Lisp 万岁!...Common Lisp 开发环境 学习 Common Lisp 是使用 Emacs 最主要的任务,配好了文本编辑,当然得先把 Common Lisp 开发环境配置好了。...start python % 使用 Emacs 的运行外部命令的方法 M-!...将以下内容复制之后粘贴到一个 .reg 文件里,运行即可(将 exe 路径换为你自己的)。

    1.9K10

    一名Clojurian的Emacs配置

    "http://melpa.org/packages/")中的点号(dot)表示法也比较奇怪,其实这是lisp中的Dotted pair表示法,用法和普通的列表类似,但因为是pair的缘故,你可以使用(...(add-to-list 'load-path (expand-file-name "lisp" user-emacs-directory)) 看似,接下来就可以在每个独立的模块文件中编写各种功能的配置...package.el提供了package-install-p(p是predicate的意思)和package-install两个配套使用的函数,也就是说一般得先判断包在不在,才决定安不安装。...初次看到compile time,心中难免会有疑问:lisp不是动态语言吗,怎么还需要编译?这种时候,我们就要求助于elisp的文档了。...,company提供了强大的命令补全提示功能。

    2.8K20

    亚马逊工程师论各种编程语言的优缺点

    比如,Lisp 机器,是上世纪 50 年代对 Lisp 计算模型的实现。Lisp 模型是基于 lambda 代数的一种计算语言表示法,后者是与图灵机同构的一种模型。...但是这二者是同等能力的。它们同样精确的表示了计算机能干什么。   Lisp 机现在不是很流行了,除了在跳蚤市场里。从谁更受欢迎来说,冯·诺曼机器赢了。...C++ 是个很好玩的游乐场,而如果你把它玩儿得门儿清的话你会觉得自己特牛,所以你总是被诱惑把你知道的所有的东西都用上。...有一个执行助理把你从琐事中解救出来让你有时间去思考那些真的需要你去解决的问题; 没有的话你将不得不花一半的时间在那些无聊的世俗的事情上。...因为它有(内建)的字符串。哥们,你说一个没有内建的字符串的语言是人用的吗。

    2.2K80

    Emacs Lisp

    前言 Lisp 是一门很古老的语言 LISP 是具有悠久历史的计算机编程语言家族,有独特和完全括号的前缀符号表示法,起源于1958年,是现今第二悠久而仍广泛使用的高级编程语言,只有 FORTRAN 编程语言比它更早一年..., ;; 在其中你会发现 *scratch* 的字样,这表示你当前的缓冲区(buffer)的名字。..." my-name)) ;; ^ 把光标停在这里,再键入C-x C-e 执行defun命令来定义函数 ;; 通过defun命令,你已经在Emacs中安装了这个hello函数,这个函数就成为了Emacs的一部分...;; 下面的命令先构造一个列表,再把这个列表赋给list-of-names变量 (setq list-of-names '("Sarah" "Chloe" "Mathilde")) ;; ^这里的单引号表示这是一个列表...;; 如果想要得到列表中的第一个元素,可以使用car函数 (car list-of-names) ;; 如果想要得到列表中的除第一个元素以外的其它元素,可以使用cdr函数 (cdr list-of-names

    2.3K40

    Emacs Lisp2

    ,;; 在其中你会发现 *scratch* 的字样,这表示你当前的缓冲区(buffer)的名字。...;; 为了实验本教程中的lisp命令,我们要让Emacs工作在lisp-interaction-mode工作模式下,;; 这个模式可以让我们在缓冲区中和Emacs进行互动,并且直接执行Lisp命令,得到结果...));; ^ 把光标停在这里,再键入C-x C-e 执行defun命令来定义函数;; 通过defun命令,你已经在Emacs中安装了这个hello函数,这个函数就成为了Emacs的一部分,知道你退出Emacs...;; 下面的命令先构造一个列表,再把这个列表赋给list-of-names变量(setq list-of-names '("Sarah" "Chloe" "Mathilde"));; ^这里的单引号表示这是一个列表...;; 如果想要得到列表中的第一个元素,可以使用car函数(car list-of-names);; 如果想要得到列表中的除第一个元素以外的其它元素,可以使用cdr函数(cdr list-of-names

    98840

    Lisp的本质(The Nature of Lisp)学习思考

    我把我的想法说给Lisp程序员听, 遭到了他们的反对。"这些东西本身当然不可能用熟悉的知识来解释, 这些概念完全与众不同, 你不可能在别人已有的经验里找到类似的东西",可是我认为这些都是遁词。...任何可以用树来表示的数据, 同样可以用XML来表示, 反之亦然。希望你能懂得这一点, 这对下面的内容极其重要。 再进一步。还有什么类型的数据也常用树来表示? 无疑列表(list)也是一种。...再看一回我们刚才说的Task任务。祝贺你呀, 你在看Lisp代码!!! 我说什么? 一点都不像Lisp吗? 没关系, 我们再给它收拾一下。...同样的,设想一下, Ant是把XML数据当作自己的参数。在Lisp中, 我们给表加一个前缀'来表示数据。...学会Lisp也可能意味着明天你可能会被解雇, 因为你总是强调, 如果公司所有软件都用Lisp写, 公司将会如何卓越, 而这些话你的同事会听烦的。Lisp值得努力学习吗?

    1.8K60

    Emacs Lisp

    前言 Lisp 是一门很古老的语言 LISP 是具有悠久历史的计算机编程语言家族,有独特和完全括号的前缀符号表示法,起源于1958年,是现今第二悠久而仍广泛使用的高级编程语言,只有 FORTRAN 编程语言比它更早一年..., ;; 在其中你会发现 *scratch* 的字样,这表示你当前的缓冲区(buffer)的名字。..." my-name)) ;; ^ 把光标停在这里,再键入C-x C-e 执行defun命令来定义函数 ;; 通过defun命令,你已经在Emacs中安装了这个hello函数,这个函数就成为了Emacs的一部分...;; 下面的命令先构造一个列表,再把这个列表赋给list-of-names变量 (setq list-of-names '("Sarah" "Chloe" "Mathilde")) ;; ^这里的单引号表示这是一个列表...;; 如果想要得到列表中的第一个元素,可以使用car函数 (car list-of-names) ;; 如果想要得到列表中的除第一个元素以外的其它元素,可以使用cdr函数 (cdr list-of-names

    2.2K30
    领券