lisp 中REQL基本操作

本文介绍了在Lisp环境中使用REQL时的基本操作,包括错误处理、代码缩进、函数定义的加载方式以及REPL的使用技巧。通过C-c C-c编译函数,C-x C-z切换到REPL,C-x C-s保存缓冲区,C-x b和C-x C-f进行缓冲区和文件操作。此外,还提到了C-M-Q和C-c M-q用于代码的自动缩进,以及load和compile-file在加载和编译源文件时的角色。最后,文章提及了清空REPL缓冲区的快捷键C-c M-o和C-c C-o。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

直接输入q推出调试器,然后回到REQL里,调试器缓冲区将会消失,而REQL将显示下面

CL-USER> (hello-world)

; Evaluation aborted on #<UNDEFINED-FUNCTION HELLO-WORLD {23FBEF29}>.

C-c C-c 将启动 slime-compile-defun命令,将当前定义发给lisp进行求值并编译

C-c C-z 切换到REPL 

C-x C-s 可以启动Emacs命令save-buffer.

C-x b   switch buffer,

C-x C-f 打开一个文件,同时把文件名作为buffer 名。

缩进:

在slime中将光标放置在一个开括号上并键入C-M-Q来重新缩进整个表达式

在函数内部的任一个位置C-c M-q 来重新缩进整个函数体。

还有一个跟我们平常不一样的是,我一直感觉c-x c-s都是保存REPL中的东西,但是今天才知道,他只是一个窗口,你必须得有一个源文件,不含有cl-user的标示。否则当你load的时候他总会说cl-user不识别。

加载文件的方法:

1:REPL中直接输入,然后你就可以在repl中调用函数了。本质上等价于以文件中出现的顺序在REPL下逐个输入每个表达式。

CL-USER> (load "hello.lisp")

T

2:加载文件中有用定义的方法,先compile-file 编译,然后再用load加载编译后的FASL文件-快速加载文件(fast-load file)简称。

CL-USER> (load (compile-file "hello.lisp"))

; compiling file "d:/emacs/emacs-24.1/bin/hello.lisp" (written 15 JUL 2012 12:46:10 PM):

; compiling (DEFUN HELLO-WORLD2 ...)

; d:/emacs/emacs-24.1/bin/hello.fasl written

; compilation finished in 0:00:00.009

STYLE-WARNING: redefining COMMON-LISP-USER::HELLO-WORLD2 in DEFUN

T

3:可以在源代码或者SLIME buffer中输入C-c C-l 你在其它缓冲区的话,它会在命令窗口显示undefined.

C-c M-o  slime-repl-clear-buffer 清空buffer

C-c C-o  slime-repl-clear-output 清空输出

M-x slime-compile-region 编译region

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值