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

如何在Emacs lisp中遍历文字列表?

在Emacs Lisp中遍历文字列表可以使用循环结构和递归函数来实现。下面是一个示例代码:

代码语言:txt
复制
(defun traverse-list (list)
  "遍历文字列表"
  (while list
    (message "%s" (car list))
    (setq list (cdr list))))

(traverse-list '("apple" "banana" "cherry"))

上述代码定义了一个名为traverse-list的函数,该函数接受一个文字列表作为参数。在函数体内部,使用while循环结构来遍历列表。while循环会在列表不为空的情况下执行循环体内的代码。循环体内使用message函数打印当前列表元素的值。然后使用setq函数将列表指针指向下一个元素,以便进行下一次循环。

你可以调用traverse-list函数并传入一个文字列表作为参数,例如'("apple" "banana" "cherry")。函数将会依次打印出列表中的每个元素。

请注意,这只是一个简单的示例代码,你可以根据实际需求进行修改和扩展。另外,关于Emacs Lisp的更多信息和学习资源,你可以参考Emacs Lisp官方文档

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

相关·内容

Emacs 28 新特性介绍

现任 Emacs 维护者 Eli Zaretskii 在 9 月 30 号通过邮件列表[1]宣布 emacs-28 分支已经创建出,这意味着 28 版本的大功能已经 ready,不会再有大改动,但距离正式发版还要一段时间...这篇文章就来介绍 Emacs 28 ,笔者个人觉得比较实用的功能,完整列表可参考 NEWS[3] ( M-x view-emacs-news ),最后会介绍如何在 macOS 上编译。...positional 参数已经被淘汰 编译方式 看了上面那么多新功能,读者可能已经按捺不住内心的喜悦,这里就来介绍如何在 macOS 编译 28 版本,其他操作系统方式类似。.../i-basic.el#L346 [11] hierarchy.el: https://github.com/emacs-mirror/emacs/blob/emacs-28/lisp/emacs-lisp.../hierarchy.el [12] shorthands.el: https://github.com/emacs-mirror/emacs/blob/emacs-28/lisp/emacs-lisp

96830

Emacs 之光的成长历程

更令人好奇的是,嘉宾如何在短期内熟悉 Emacs 源码并为之贡献多个 patch,相信通过嘉宾的学习、贡献经历,可以给听众打开 Emacs 源码的神秘面纱,让更多用户参与到 Emacs 的贡献,一个多小时的分享...,句号后两个空格 • 注释用的是 C 风格的 /* */ ,而不是 C++ 的 // • 函数名后面跟一个空格,再是括号 •读 Emacs 源码技巧 • lisp.h[12] 里面有 C 如何调用 ELisp...的示例 • 去 devel[13] 邮件列表咨询,还可以练习英文表达能力 • ccls[14] + grep + ctags • 通过搜索相关功能来探究其个函数的用法 •嘉宾的分享 • aggressive-indent-mode...buffer: https://github.com/emacs-mirror/emacs/commit/7c83e605ab84e8b62254c55f347abc8aa9c6057b [12] lisp.h...: https://github.com/emacs-mirror/emacs/blob/master/src/lisp.h [13] devel: https://lists.gnu.org/archive

40610
  • Emacs Lisp

    LISP 编程语族已经演变出许多种方言,现代最著名的通用编程语种是 Common Lisp 和 Scheme , 以上解释来自 WIKI Emacs LispLisp 的一个分支 Emacs Lisp...,一种直译式的脚本语言,为LISP的方言之一,GNU Emacs与XEmacs文字编辑器都使用这个编程语言来扩展它们的功能,它的直译器是以C语言来实作的,它受到Maclisp的影响很大,但是跟Common...;; 为了实验本教程lisp命令,我们要让Emacs工作在lisp-interaction-mode工作模式下, ;; 这个模式可以让我们在缓冲区中和Emacs进行互动,并且直接执行Lisp命令,得到结果...;; Lisp中使用括号构造列表,使用setq给变量赋值。...函数对列表的把列表的每一个元素分别取出来,赋给hello函数 (mapcar 'hello list-of-names) ;; 重新定义greeting函数,在一个新的,清空的buffer,对list-of-names

    2.3K40

    Emacs Lisp

    LISP 编程语族已经演变出许多种方言,现代最著名的通用编程语种是 Common Lisp 和 Scheme , 以上解释来自 WIKI Emacs LispLisp 的一个分支 Emacs Lisp...,一种直译式的脚本语言,为LISP的方言之一,GNU Emacs与XEmacs文字编辑器都使用这个编程语言来扩展它们的功能,它的直译器是以C语言来实作的,它受到Maclisp的影响很大,但是跟Common...;; 为了实验本教程lisp命令,我们要让Emacs工作在lisp-interaction-mode工作模式下, ;; 这个模式可以让我们在缓冲区中和Emacs进行互动,并且直接执行Lisp命令,得到结果...;; Lisp中使用括号构造列表,使用setq给变量赋值。...函数对列表的把列表的每一个元素分别取出来,赋给hello函数 (mapcar 'hello list-of-names) ;; 重新定义greeting函数,在一个新的,清空的buffer,对list-of-names

    2.2K30

    一名Clojurian的Emacs配置

    俗话说,工欲善其事必先利其器,完善开发工具与我而言是一件愉快的事情,所以想把经验集结成文字,便有了这篇文章。这篇文章不会介绍太多花式或有深度的emacs配置,更多是摸索学习的过程,其中充满了乐趣。...这就不得不提起Clojure这门lisp方言,出于对lisp和函数式编程的痴迷,我选择了基于JVM的Clojure作为自己的偏好语言,而emacs天生为lisp而生。..."http://melpa.org/packages/")的点号(dot)表示法也比较奇怪,其实这是lisp的Dotted pair表示法,用法和普通的列表类似,但因为是pair的缘故,你可以使用(...按照惯例,我在~/.emacs.d目录下建立一个lisp目录用于存放所有自定义的模块文件,随后在init.el中加入下面这句代码,意在把lisp目录加到emacs的加载路径列表里。...(add-to-list 'load-path (expand-file-name "lisp" user-emacs-directory)) 看似,接下来就可以在每个独立的模块文件编写各种功能的配置

    2.8K20

    Emacs Lisp2

    ;; 缓冲区也叫做工作区,在Emacs打开一个文件,实际只是在Emacs构造该文件的一个副本,放到缓冲区,;; 在Emacs对该文件的编辑也是针对该副本的编辑,唯有保存改动时,Emacs才会把缓冲区的内容在复制到原文件中去...;; 为了实验本教程lisp命令,我们要让Emacs工作在lisp-interaction-mode工作模式下,;; 这个模式可以让我们在缓冲区中和Emacs进行互动,并且直接执行Lisp命令,得到结果...\n\nI am %s." your-name from-name))(other-window 1)));; 执行这个函数(greeting "Bastien")== 列表和综合实例 ==;; Lisp...;; 如果想要得到列表的第一个元素,可以使用car函数(car list-of-names);; 如果想要得到列表的除第一个元素以外的其它元素,可以使用cdr函数(cdr list-of-names...);; 以后push函数可以在列表的头部插入新的元素,所以下面的命令将改变list-of-name中元素的个数(push "Stephanie" list-of-names);; mapcar函数对列表的把列表的每一个元素分别取出来

    98240

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

    这个比较小众的编程到底是什么~ ————————————————————————— LISP(全名LISt Processor,即列表处理语言),由约翰·麦卡锡在1960年左右创造的一种基于λ演算的函数式编程语言...LISP有很多种方言,各个实现的语言不完全一样。1980年代Guy L. Steele编写了Common Lisp试图进行标准化,这个标准被大多数解释器和编译器所接受。...在Unix/Linux系统,还有一种和Emacs一起的Emacs Lisp(而Emacs正是用Lisp作为扩展语言进行功能扩展的)非常流行,并建立了自己的标准。...Lisp的表达式是一个原子(atom)或表(list),原子(atom)又包含符號(symbol)與數值(number);表是由零个或多个表达式组成的序列,表达式之间用空格分隔开,放入一对括号:...在 Lisp 我们习惯用原子 t 表示真,而用空表 () 表示假。

    2.3K20

    Emacs 折腾记

    我工作倒并没有用得到 Lisp 的地方,但是最近眼前晃过的一些书,比如《计算机程序的构造和解释》、《码农》杂志第 13 期,都对这门古老的语言推崇备至,历数现代 Lisp 方言的先进性,再者我也一直有学习一门函数式编程语言的想法...Common Lisp 开发环境 学习 Common Lisp 是使用 Emacs 最主要的任务,配好了文本编辑,当然得先把 Common Lisp 开发环境配置好了。...在 ~/.emacs 文件里添加: 这样自动补全之类的就没有问题了。 然后在如何运行当前 py 文件这件事上遇到些问题。在 Vim 我一直是用 :!...python % 来运行的,但是在 Emacs 里,包括 Evil、eshell、shell 里,如果有等待用户输入的语句 input 或 raw_input 等,因为 Emacs 只重定向了输出,无法重定向输入...在 ~/.emacs 文件添加 这个 3 表示在距离屏幕上下边缘还有 3 行的时候再移动光标即自动滚屏,方便随时能看到当前编辑行的上下文,可以根据自己的使用习惯调整。

    1.3K20

    Emacs Tree-sitter 初体验

    现在较为流行的编辑器, neovim 都已支持 ts 作为解析库。...在 Emacs ,之前都是采用正则的方式去解析语言的语法结构,这种方式虽然大多数情况是没有问题的,但主要有以下几个问题: 正则比较消耗 CPU,导致对大文件进行高亮时容易导致 Emacs 卡主,参见:...Regexp Problems (GNU Emacs Lisp Reference Manual)[2] 对于有些语法结构,正则并不能很好的工作,参见:The true power of regular...对应的 mode 来使用,比如 c-mode 对应的 c-ts-mode ,Emacs 为不同的语言重新实现了一个以 ts-mode 结尾的新 mode,在 29 版本,主要有如下 12 个: 12...Lisp Reference Manual): https://www.gnu.org/software/emacs/manual/html_node/elisp/Regexp-Problems.html

    1.3K10

    Emacs 折腾记

    我工作倒并没有用得到 Lisp 的地方,但是最近眼前晃过的一些书,比如《计算机程序的构造和解释》、《码农》杂志第 13 期,都对这门古老的语言推崇备至,还有垠神也撰文《Lisp 已死,Lisp 万岁!...在搜索网友们对此的经验之谈的时候,自然而然地,目光逐渐聚集到 Emacs 这个使用 Emacs Lisp 作为扩展语言的神的编辑器上。...Common Lisp 开发环境 学习 Common Lisp 是使用 Emacs 最主要的任务,配好了文本编辑,当然得先把 Common Lisp 开发环境配置好了。...添加 sbcl 安装路径。...python % 来运行的,但是在 Emacs 里,包括 Evil、eshell、shell 里,如果有等待用户输入的语句 input 或 raw_input 等,因为 Emacs 只重定向了输出,无法重定向输入

    1.9K10

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

    Emacs 是天才。连非技术人员都爱 Emacs。我现在就是在 Emacs 里打这些文字。我绝不情愿在任何其他地方打字。...我们(当时)找不到 Emacs-Lisp 足够牛的人把 Mailman 继续搞下去。今天这应该不难了; 亚马逊现在到处都是 Emacs Lisp 的黑客。...他们当时没有足够多的 Emacs-Lisp 的人。...当其他的那些语言(尤其是 Lisp 和 Smalltalk)都想假装操作系统并不存在,列表(Lisp 的)和对象(Smalltalk 的)就是把屎搞出来的唯一存在,Perl 却走了截然相反的路子。...我根本不能想象他们以前能打字打得足够快,英文字母只有 26 个,他们却有上万个字。但是 Emacs 几年前支持多字节字符了,所以我猜他们现在打字速度他妈的快多了。

    2.2K80

    几种编程语言的优缺点

    Emacs 是天才。连非技术人员都爱 Emacs。我现在就是在 Emacs 里打这些文字。我绝不情愿在任何其他地方打字。...我们(当时)找不到 Emacs-Lisp 足够牛的人把 Mailman 继续搞下去。今天这应该不难了; 亚马逊现在到处都是 Emacs Lisp 的黑客。...他们当时没有足够多的 Emacs-Lisp 的人。...当其他的那些语言(尤其是 Lisp 和 Smalltalk)都想假装操作系统并不存在,列表(Lisp 的)和对象(Smalltalk 的)就是把屎搞出来的唯一存在,Perl 却走了截然相反的路子。...我根本不能想象他们以前能打字打得足够快,英文字母只有 26 个,他们却有上万个字。但是 Emacs 几年前支持多字节字符了,所以我猜他们现在打字速度他妈的快多了。

    3.4K110

    如何快速使用 ELisp 进行插件编写

    要知道 Lisp 的一重要提高生产效率的工具是 REPL,没有 demo 让我复制,我怎么在 REPL 里测试?...而且程序员都很懒、很忙,去仔细看 manual 不现实,而且 Emacs 的 manual 我感觉有些“重”了,文字太多了,看的累,我需要的仅仅是个很 copy 的示例,然后再根据我的需求改改就好了,就行...clojuredocs 那样,比如 reduce[2] 页面: 幸好在 Emacs China TG 组交流“心得”后,发现了 elisp-demos[3] 插件,可以在 helpful 页面展示函数的用法...: 最后,再推荐一个教程,供有其他 Lisp 经验的程序员快速使用 ELisp。...• https://github.com/chrisdone/elisp-guide 引用链接 [1] feature: https://github.com/clojure-emacs/cider/pull

    79420

    操作系统Emacs是如何沦落为一代编辑器的?

    开始之前,先让我们知道今天的Emacs是长怎样的? ? 不不,这是它的新Logo,我的意思是它的用途。 什么是Emacs? Emacs是一种功能超强的文本处理程序,或者文本编辑器。...基础部分是使用C语言编写的,其他部分是用Emacs Lisp编写的。深层次的话,C语言构成了emacs的底层,包括Emacs Lisp的解释器。...而Emacs Lisp则是负责了Emacs Lisp的建筑物上层,也就是包括我们平时用的扩展、界面等。...从架构上来说,它很不错——你可以在很多的架构书上看到相关的介绍,《代码之美》、《架构之美》等等。 ?...GNU编译器套装(GCC)、GNU的C库(glibc)、以及GNU核心工具组(coreutils),另外也是GNU除错器(GDB)、GNU二进制实用程序(binutils)的GNU Bash shell

    2K80

    excel宏编程 c语言,宏(巨集)

    Lisp类语言Common Lisp和Scheme有更精巧的宏系统: 宏的行为如同是函数对自身程序文本的变形,并且可以应用全部语言来表达这种变形。...程序员的文本编辑器Emacs(“编辑宏”Editing MACroS的简称)是沿用这一思想的产物。事实上,大多数编辑器是由宏组成的。...Emacs 最初被设计为编辑语言 TECO 的宏集,后被移植为 Lisp 的一种方言 Emacs Lisp。Vim也允许用户录制和播放简单的键盘宏。...宏语言并未在通用编程中广泛使用,但在文本处理程序应用普遍。...其它的包括宏语言的项目,OpenOffice.org,故意从其宏语言中排除了一些功能(:自动执行)以避免破坏程序。然而,这一特性在很多事务受到欢迎。

    1.6K20

    编程语言中那些有趣的命名

    这种计算机科学的“饶舌”现象叫作递归缩写。 递归缩写(Recursive acronym)即递归首字缩写,是一种在全称递归引用它自己的缩写。      ...最早的递归缩写命名的实例应该是1977年或1978年出现的TINT编辑器,其命名为“TINT Is Not TECO”(TINT不是文字编辑器和修正器),它是一个MagicSix的编辑器。...这又启发了麻省理工大学的两个Lisp Machine 编辑器的命名,一个叫做 EINE (“EINE Is Not Emacs“,EINE不是 Emacs),另一个是 ZWEI (“ZWEI Was EINE...npm、GNU一样,许多递归缩写包括否定语,通常用来指出这个缩写指代的事物 a 不是与另一个事物 b 相类似(但事实上,这个事物 a 通常与 b 非常相似甚至是 b 的衍生品)。      ...PNG的名称来源于“可移植网络图形格式(Portable Network Graphic Format,PNG)”, EMACSEMACS Makes A Computer Slow,其自我调侃的意味就太明显了

    1.2K20
    领券