
Scheme/Elisp进阶系列
文章平均质量分 75
Scheme/Elisp都属Lisp的方言,对它饶有兴趣,项目不忙的时候就静下来写点东西,以此为乐...
Android系统攻城狮
《Android系统多媒体进阶实战》一书作者
展开
-
R8RS标准之重要特性及用法实例(四十)
本篇目的:R8RS标准之重要特性及用法实例R8RS(Revised^8 Report on the Algorithmic Language Scheme)是 Scheme 语言的第八次修订标准,发布于 2021 年。R8RS 标准的发布标志着 Scheme 语言在规范化、功能扩展和实践应用方面的进一步发展。该标准旨在保持 Scheme 语言的核心特性,同时引入一些新的功能和改进,以应对现代编程的需求。原创 2024-08-26 09:00:00 · 1887 阅读 · 0 评论 -
R7RS标准之重要特性及用法实例(三十九)
本篇目的:R7RS标准之重要特性及用法实例R7RS(Revised^7 Report on the Algorithmic Language Scheme)是 Scheme 语言的第七次修订标准,于 2013 年发布。R7RS 分为两个部分:R7RS-small 和 R7RS-large。R7RS-small 是对 Scheme 语言的核心部分进行简化和规范,而 R7RS-large 旨在提供一个更完整的标准库。原创 2024-08-26 08:45:00 · 1139 阅读 · 0 评论 -
R6RS标准之重要特性及用法实例(三十八)
本篇目的:R6RS标准之重要特性及用法实例R6RS(Revised^6 Report on the Algorithmic Language Scheme)是 Scheme 语言的第六次修订标准,于 2007 年发布。这一标准对 Scheme 语言进行了重要的规范和改进,为语言的进一步发展奠定了基础。R6RS(Revised^6 Report on the Algorithmic Language Scheme)是 Scheme 语言的第六次修订标准,于 2007 年发布。原创 2024-08-24 08:45:00 · 602 阅读 · 0 评论 -
Scheme5.0标准之重要特性及用法实例(三十七)
本篇目的:Scheme5.0标准之重要特性及用法实例Scheme 5.0 是 Scheme 语言的一个重要版本,发布于 2007 年。这个版本在前代基础上进行了显著的改进和扩展,为 Scheme 语言的发展注入了新的活力。Scheme 5.0 的发布标志着语言在标准化、模块化、宏系统、异常处理等方面的成熟与完善,同时也在实践中体现了语言简洁性与功能性的平衡。1. R6RS 标准的全面实现。原创 2024-08-24 08:30:00 · 1168 阅读 · 0 评论 -
Scheme4.0标准之重要特性及用法实例(三十六)
本篇目的:Scheme4.0标准之重要特性及用法实例Scheme 4.0 是 Scheme 语言的一个关键版本,于 1990 年发布,标志着 Scheme 语言在语言设计和功能上的重大进步。这个版本由 Gerald Jay Sussman、Guy L. Steele Jr. 及其他开发者推出,引入了多项新特性和改进,进一步增强了 Scheme 语言的表达能力和实用性。1. 引入 R6RS 标准。原创 2024-08-23 08:45:00 · 763 阅读 · 0 评论 -
Scheme3.0标准之重要特性及用法实例(三十五)
本篇目的:Scheme3.0标准之重要特性及用法实例Scheme 3.0 是 Scheme 语言的一个重要版本,于 1985 年发布,由 Gerald Jay Sussman 和 Guy L. Steele Jr. 开发。Scheme 3.0 在之前版本的基础上引入了许多重要的特性和改进,这些变化进一步拓展了 Scheme 语言的功能,提升了其表达能力,并对后续编程语言的发展产生了深远影响。1. 引入了“R5RS”标准。原创 2024-08-23 08:30:00 · 846 阅读 · 0 评论 -
Scheme2.0标准之重要特性及用法实例(三十四)
本篇目的:Scheme2.0标准之重要特性及用法实例Scheme 2.0 是 Scheme 语言的一个重要版本,于 1983 年发布,由 Gerald Jay Sussman 和 Guy L. Steele Jr. 主导开发。Scheme 2.0 在 Scheme 1.0 的基础上引入了多项关键特性和改进,进一步发展了 Scheme 语言的功能和设计理念。它对 Scheme 语言及其后续版本产生了深远的影响,并为现代编程语言设计提供了重要的参考。1. 引入了高级宏系统。原创 2024-08-22 08:45:00 · 1079 阅读 · 0 评论 -
Scheme1.0标准之重要特性及用法实例(三十三)
本篇目的:Scheme1.0之重要特性及用法实例Scheme 1.0 是 Scheme 语言的第一个正式版本,于 1975 年由 Gerald Jay Sussman 和 Guy L. Steele Jr. 在麻省理工学院(MIT)开发。这一版本标志着 Scheme 语言的系统化和标准化,具有多项开创性的特性,这些特性不仅奠定了 Scheme 的基础,也对现代编程语言设计产生了深远的影响。1. 统一的括号化语法Scheme 1.0 的一个显著特点是其统一的括号化语法,这种语法风格源于 Lisp 语言。原创 2024-08-22 08:30:00 · 1054 阅读 · 0 评论 -
Elisp之实现判断大小写状态(三十二)
本篇目的:Elisp之实现判断大小写状态xsel是一个在类 Unix 操作系统(如 Ubuntu)中用于复制和粘贴文本的命令行工具。在图形用户界面(GUI)中,我们通常使用鼠标来复制和粘贴文本,但在命令行界面(CLI)中,xsel提供了一种在程序和终端之间传输文本的便捷方式。xsel是一个功能强大的命令行工具,它填补了在命令行环境中处理剪贴板内容的空白。通过xsel,用户可以在 CLI 和 GUI 应用程序之间无缝地复制和粘贴文本,从而提高工作效率和自动化能力。原创 2024-06-04 02:45:00 · 1054 阅读 · 0 评论 -
Elisp之提取路径并且拼接(三十一)
本篇目的:Elisp之提取路径并且拼接Elisp(Emacs Lisp)是一种强大的编程语言,用于扩展Emacs文本编辑器。在Elisp中,字段提取和拼接是处理字符串的基本操作,用于从字符串中提取特定部分或将多个字符串组合在一起。原创 2024-06-02 04:00:00 · 1705 阅读 · 0 评论 -
Elisp之file-name-sans-extension 、file-name-nondirectory 、buffer-file-name用法实例(三十)
本篇目的:Elisp之file-name-sans-extension 、file-name-nondirectory 、buffer-file-name用法实例在Emacs Lisp中,有几个与文件名相关的函数,它们可以用来获取和处理文件名。下面是这三个函数的用法介绍:这个函数返回当前缓冲区所对应的文件的完整文件名,包括路径。如果当前缓冲区没有与文件关联(例如,新建的未保存的缓冲区),则返回nil。例如:这将把当前缓冲区文件的完整文件名赋值给变量filename。原创 2024-04-25 05:30:00 · 1204 阅读 · 0 评论 -
Elisp之实现根据文件名后缀,选择对应的编译器(二十九)
本篇目的:实现根据文件名后缀,选择对应的编译器,这样在以后编译时可以就不用在手动输入:g++ xxx.cpp等命令。Emacs Lisp(通常简称为ELisp或EL)是一种编程语言,专门为Emacs文本编辑器设计,是Emacs编辑器的一部分。它是由理查德·斯托曼(Richard Stallman)在开发GNU Emacs时创建的。ELisp是Lisp编程语言的一种方言,Lisp是第二古老的编程语言,也是最早的高级编程语言之一。原创 2024-03-24 17:54:43 · 656 阅读 · 0 评论 -
Elisp之获取PC电池状态(二十八)
本篇目的:在Emacs获取电池是否充电 、电池电量、电池剩余多长时间关机等状态。原创 2023-08-15 23:23:37 · 631 阅读 · 0 评论 -
Elisp之buffer-substring-no-properties用法(二十七)
本篇目的:理解Elisp方言buffer-substring-no-properties函数用法。原创 2023-08-02 15:07:31 · 246 阅读 · 0 评论 -
Elisp之message为内容增加颜色(二十六)
本篇目的:Elisp中常用的message打印信息常用函数,如何使用它打印五颜六色的内容呢?原创 2023-07-27 23:34:56 · 244 阅读 · 0 评论 -
Elisp之buffer-list-update-hook/window-configuration-change-hook监控Emacs窗口和缓冲区变化(二十五)
本篇目的:在Emacs使用C x 5 2启动另一个帧或窗口,它本质是一个Emacs进程的窗口,这时候使用focus-in-hook和focus-out-hook在Emacs的两个窗口(或帧)之间切换,这些钩子可能不会触发,因为Emacs程序本身并没有失去焦点。如果在一个Emacs进程中(C x 5 2启动)切换不同新窗口(或帧)时监控它们变化时,可以使用window-configuration-change-hook或buffer-list-update-hook。原创 2023-07-27 18:22:14 · 353 阅读 · 0 评论 -
Elisp之focus-in-hook、focus-out-hook、mouse-leave-buffer-hook、mouse-enter-buffer-hook区别(二十四)
本篇目的:理解focus-in-hook、focus-out-hook、mouse-leave-buffer-hook、mouse-enter-buffer-hook用法区别。原创 2023-07-27 01:01:35 · 134 阅读 · 0 评论 -
Elisp之获取绝对路径和相对路径(二十三)
本篇目的:理解定时器run-with-timer,指定延迟时间后,再执行指定动作。原创 2023-07-16 18:58:35 · 319 阅读 · 0 评论 -
Elisp之定时器run-with-timer、run-with-idle-timer、run-at-time 区别(二十二)
本篇目的:理解定时器run-with-timer,指定延迟时间后,再执行指定动作。本篇目的:理解定时器run-with-timer,指定延迟时间后,再执行指定动作。1.run-with-timer和run-at-time用法一致,每个2秒会执行打印。2.run-with-idle-timer不同的是,如果长时间不操作的话,它会停止打印;如果重新操作鼠标或键盘,它会又开始打印,也就是说,当会话不活跃的时候,它就停止工作,解决资源;当会话重新活跃时,则run-with-idle-timer又开始执行工作。原创 2023-06-25 21:44:55 · 419 阅读 · 0 评论 -
Elisp之延迟时间后运行指定动作(二十一)
本篇目的:理解定时器run-with-timer,指定延迟时间后,再执行指定动作。原创 2023-06-09 09:54:39 · 577 阅读 · 0 评论 -
Elisp之car/cdr与substring区别(二十)
本篇目的:Elisp中car、cdr与substring区别。区别1.car与cdr作用:用于list类型,car获取list列表中第一个元素,cdr获取list列表的除了第一个元素后的所有元素。2.substring作用用于处理字符串类型。原创 2023-06-08 13:40:58 · 185 阅读 · 0 评论 -
Elisp之正则表达积累(十九)
本篇目的:在Elisp中使用正则表达式,提高效能。原创 2023-06-05 13:16:08 · 209 阅读 · 0 评论 -
Elisp之实现代码自动高亮并跳转(十八)
本篇目的:在使用Emacs中,使用Emacs基本搜索C-s的基本功能不能满足代码复杂变量和函数的需求,实现一种可以自动高亮,并且找到包含这个字符串或字符的所有位置,并高亮,随意跳转,极高的提升撸代码的效率,分享给需要的朋友!原创 2023-05-21 19:04:05 · 205 阅读 · 0 评论 -
Elisp之eq与string=区别(十七)
在elisp中,eq用于比较两个对象的身份,即它们是否是内存中的同一对象。string=`用于比较两个字符串是否相等,即它们是否具有相同的字符和相同的顺序。原创 2023-05-11 02:29:49 · 141 阅读 · 0 评论 -
Elisp之获取函数的名字/路径/行号(十六)
在浏览代码过程中,有时候函数比较长,一眼看不到头,需要确定当前的位置,但是就需要往前翻代码,比较麻烦,有可能打断思路,写一个小效率工具,帮助提高阅读代码效率。原创 2023-05-10 17:13:32 · 158 阅读 · 0 评论 -
Elisp之获取当前文件/目录路径(十五)
Elisp实现三个函数小功能,作为效能工具助手。1.拷贝当前buffer文件名到剪切板2.拷贝当前buffer文件名所在的路径到剪切板(不包括文件名)3.拷贝当前buffer绝对路径到剪切板(包括文件名)原创 2023-05-10 11:14:19 · 159 阅读 · 0 评论 -
Elisp之文件buffer只读模式(十四)
公众号:Android系统攻城狮 简介: 优快云博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.2.第二种方式 更多原创,欢迎关注:Android系统攻城狮原创 2023-05-09 10:15:10 · 108 阅读 · 0 评论 -
Elisp之列举所有的hooks function(十三)
每次需要绑定快捷键的时候,都需要找对应的hook,下面列出emacs所有的hooks functions,方便查阅。原创 2023-05-09 09:58:56 · 161 阅读 · 0 评论 -
Elisp之实时检测按键输入(十二)
检测是否输入某个键值,然后做对应的操作。原创 2023-05-09 01:37:37 · 284 阅读 · 0 评论 -
Elisp之延时函数用法(十一)
在Elisp coding中,会用到一些延时函数和命令,有时会比较混乱,下面来总结一下。原创 2023-05-05 23:36:26 · 144 阅读 · 0 评论 -
Elisp之funcall与apply调用函数(十)
通常函数的调用都是用 eval 进行的,但是有时需要在运行时才决定使用什么函数,这时就要用 funcall 和 apply 两个函数了。这两个函数都是把其余的参数Š为函数的参数进行调用。唯一的区别:funcall 是直接把参数传递给函数;apply的最后一个参数是一个列表,传入函数的参数把列表进行一次平铺后再传给函数.原创 2023-04-29 23:08:13 · 291 阅读 · 0 评论 -
Elisp之参数列表&optional和&rest用法(九)
Elisp中有三种参数类型第一种是必须的参数;第二种是可选参数;第三种是可变参数;&optional和&rest都是elisp中的参数列表关键字&optional用于定义可选参数,可以在函数调用时省略&rest用于定义不定参数,可以接受任意数量的参数,但必须放在参数列表的最后。原创 2023-04-29 22:41:53 · 175 阅读 · 0 评论 -
Elisp之let与let*区别(八)
在Elisp使用中,很多人搞不清楚let和let*的用法,通过代码示例帮助理解.原创 2023-04-28 20:54:51 · 256 阅读 · 0 评论 -
Elisp之在C/C++模式下绑定键值(七)
Elisp实现在特定的模式下,做一些特定的操作,为的是不影响全局。例如:在C和C++模式下绑定 “g”,当输入"g"键时,就会执行函数ggo-refresh。实现如下所示。原创 2023-04-28 18:48:55 · 118 阅读 · 0 评论 -
Elisp之检测函数运行时,在它之前执行别的程序(六)
Elisp编程中,有时候想要检测到别的函数将运行时,能不能在它之前运行自己的代码呢?答案:可以!直接上代码!原创 2023-04-28 12:02:48 · 311 阅读 · 0 评论 -
Elisp之语法练习(五)
公众号:Android系统攻城狮 简介: 优快云博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.在elisp中,let用于定义局部变量,其作用是在当前作用域内创建一个或多个变量,并将其绑定到特定的值或表达式上。2. progn 用法. 函数功能在elisp中,progn用于将多个表达式组合成一个序列,原创 2023-04-27 17:51:45 · 269 阅读 · 0 评论 -
Scheme之基本语法(四)
1.Scheme位移操作<1>.8左移1位(ash 8 1)<2>.8右移1位(ash 8 -1)2.平方操作<3>.2的4次方(expt 2 4)3.打印(print "Hello World")原创 2021-12-02 15:21:21 · 968 阅读 · 0 评论 -
Common Lisp之Slime函数调用快捷键(三)
1.显示该函数的调用者C-c C-w c 或 M-x slime-who-calls2.显示对全局变量的引用C-c C-w r 或 M-x slime-who-references3.显示对全局标量的绑定C-c C-w b 或 M-x slime-who-binds4.显示对全局标量的赋值C-c C-w s 或 M-x slime-who-sets5.显示某个宏扩展之后的...原创 2019-06-30 18:42:43 · 456 阅读 · 0 评论 -
Scheme学习系列O:启动篇
如果你也在陶冶情操闲暇时以SICP为乐,那必须先利其器1. Structure and Interpretation of Computer Programs 《计算机程序的解释与构造》 简称: SICP,非常著名的一本书(中译本叫《计算机程序的解释与构造》,由裘宗燕老师翻译的),Scheme 的鼻祖 Gerald Jay Sussman 和计算机教育专家 Hal Abelson原创 2016-08-06 16:14:13 · 933 阅读 · 0 评论 -
Scheme学习系列一 :源码安装Gambit
0.配置需要环境# sudo apt-get install libusb-dev usbutils linux上安装mingwin # sudo apt-get install mingw32下载地址:http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/source/1.解压.tgz文件 #tar -zxvf ga...原创 2017-07-11 13:11:06 · 1335 阅读 · 0 评论