lisp - mit 方案 vim slimv : "read-error: no dispatch function defined for #\F"

标签 lisp scheme mit-scheme slimv

这是一个非常简单的方案函数

(define member?
  (lambda (a lat)
    (cond
      ((null? lat) #f)
      (else (or (eq? (car lat) a)
                (member? a (cdr lat))
                ))
      )
    )
  )

但是,当我在vim中按,d,F运行这个函数时,出现错误

/home/oo/tmp/t.scm:64 read-error: no dispatch function defined for #\F

Line: 4, Column: 21, File-Position: 64

Stream: #<SB-SYS:FD-STREAM for "file /home/oo/tmp/t.scm" {AC84DA9}>

enter image description here

最佳答案

Chris 已经指出您试图将 Scheme 代码与 Common Lisp swank 服务器一起使用。 您需要运行 Scheme swank 服务器(例如 swank-mit-scheme.scm,也包含在 Slimv 中)。 通常 Slimv 应该在 Linux 上自动检测 MIT 方案,而无需在 .vimrc 中进行任何调整。为了使自动检测正常工作,您需要安装 MIT Scheme 并且 scheme 命令可用。

我建议您从 .vimrc 中删除任何与 Slimv 相关的设置。然后在 Vim 中加载 .scm 并键入此命令:

:echo SlimvSwankCommand()

如果 Scheme 被自动检测到,那么这应该打印运行 Scheme swank 服务器的命令(在输出中搜索 swank-mit-scheme.scm)。如果自动检测不成功,那么要么你没有 scheme 命令,要么 Slimv 没有找到 swank-mit-scheme.scm。在这种情况下,您需要告诉 Slimv 运行 Scheme swank 服务器的命令。您可以通过向 .vimrc 添加类似的命令来实现:

让 g:slimv_swank_cmd = '! xterm -e scheme --load/your-path-to/slime/contrib/swank-mit-scheme.scm &'

但只有在自动检测失败时才这样做。如果您需要更多帮助,请随时与我联系,我是 Slimv 的作者。

关于lisp - mit 方案 vim slimv : "read-error: no dispatch function defined for #\F",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11320144/

相关文章:

functional-programming - 填充二进制 block 惰性序列

emacs - ILISP 安装麻烦

binding - 如何刷新、重制 lambda 上的词法绑定(bind)?

algorithm - 方案中的后序遍历

console - 是否可以在方案中编写控制台应用程序?

console - 如何使用控制台作为Guile Scheme的输入和输出?

apache - linux+apache2+mod_lisp+CLISP 重访

macos - 如何使箭头键在MIT Scheme解释器中起作用?

emacs - 有没有办法在 Windows 上的 emacs 下运行 MIT 方案解释​​器?

emacs - Lisp:既未声明也未绑定(bind) CHAR