Clojure向我介绍了Lisp语法的概念,我很感兴趣,但是让Clojure repl设置并在不同的机器上使用它会很痛苦。还有哪些其他资源可用于实际动态测试和使用Lisp语法?
我正在想象一个类似网站的东西,你可以输入基本的代码,或者一个浏览器插件,甚至只是一个独立的应用程序,它引导你完成Lisp(在Linux / Ubuntu上运行的东西)。
无法找到类似的东西,以简单/易懂的方式启动我。
答案 0 :(得分:11)
SISC Online REPL正是您所需要的。它接受Scheme语法,它是Lisp的变体。
对于我喜欢PLT Scheme的独立应用,因为它似乎在我尝试过的每个平台上都是一样的。我之前在Ubuntu上使用MIT Scheme,但是当我购买安装了64位Vista的新机器时,我决定切换。
答案 1 :(得分:8)
冒着丢失所有我的回复点的风险,请尝试newlisp。
答案 2 :(得分:5)
我过去曾使用LispBox。易于设置和开始,但我不得不承认Emacs对我来说是第二天性。如果您对此不熟悉,可以使用其他编辑器,但与Emacs建立亲密关系将帮助您在Lispville中舒适地生活。
答案 3 :(得分:5)
现在进入Clojure REPL并不难。
clojure.jar
。java -jar clojure.jar
这适用于安装了JVM的任何计算机。
要获得更多乐趣,请安装rlwrap并使用rlwrap java -jar clojure
。
答案 4 :(得分:2)
为了学习Lisp, LispWorks个人版很好:LispWorks downloads。有适用于Mac OS X,Windows,Linux和FreeBSD的版本。它们都具有相同的用户界面功能,包括编辑器和监听器 - 以及许多其他工具。目前在Linux和FreeBSD上(LispWorks 5)使用X11 / Motif作为GUI - 这将在未来版本(LispWorks 6)中更改为GTK。因此,要在Linux下运行它,您需要安装 Motif lib。除此之外使用它是相对无痛的。它有一些限制(只有5个小时的运行时间,然后你需要保存并重新启动,...),完整版本是商业版。但是为了学习一些Lisp基础知识,这是非常好的。
答案 5 :(得分:2)
Franz为Allegro Common Lisp提供在线REPL。
答案 6 :(得分:2)
codepad.org是一种很简单的在线输入和运行代码的方式(包括许多不同的语言,包括Scheme)。我一直用它来测试在SO答案中使用的代码片段。
答案 7 :(得分:1)
如果没有使用以下配置执行Emacs操作的编辑器,我将不会编辑Lisp代码:
(define-key lisp-mode-shared-map "[" 'insert-parentheses)
(define-key lisp-mode-shared-map "]" 'move-past-close-and-reindent)
前者插入平衡括号。如果给它一个数字前缀参数,它会插入许多嵌套对。默认情况下,它会插入一个。如果您标记了文本区域,则会将该区域包含在最里面插入的对中。这意味着你永远不会打开一个未关闭的括号。
后者更难以解释,因为它的使用频率较低。它更像是导航命令而不是插入命令。它确认您已完成编辑当前表单并将光标向上,向外移动并经过它,为下一次可能的插入做准备。
通过绑定这些键,不再需要使用Shift键来访问括号。此外,这使得括号键被绑定为正常,因为当需要进行性别修复或文字括号字符时。我偷了支架键,因为它们在Emacs Lisp和Common Lisp中很少使用。仍可使用元键绑定访问括号字符:
(defmacro make-key-inserter (def)
"Substitute for `self-insert-command'."
`(lambda (arg)
(interactive "*P")
(insert-char ,def (prefix-numeric-value arg))))
(define-key lisp-mode-shared-map "\M-[" (make-key-inserter ?\[))
(define-key lisp-mode-shared-map "\M-]" (make-key-inserter ?\]))
使用Emacs并不是必不可少的,但不能满足于另一个不能至少匹配此功能的编辑器。还有一整套命令用于导航和操作sexp树作为树。理解为什么这个有价值将需要你摸索一段时间,直到你停止看到语法并开始看到树。
答案 8 :(得分:1)
由于您使用的是Ubuntu,我只需安装一些软件包并尝试一下。
Common Lisp:apt-get install clisp
方案:apt-get install drscheme
这些并不是唯一的打包实现,但可能更容易上手。您将能够在REPL中播放并通过解释器运行您自己的脚本。
答案 9 :(得分:1)
BioBike通过网络提供完整的Common Lisp评估器(还有知识表示系统,生物计算和其他视觉语言等附加功能)。
答案 10 :(得分:1)
如果您只是想以交互方式快速地使用LISP,GNU Emacs内置了LISP解释器,并在*scratch*
缓冲区中进行监听。键入一个S表达式,紧跟在它后面的位置,然后按Ctrl-J进行评估。或者<ESC>:
会在迷你缓冲区中放入一个Eval:提示符,接受一个S表达式并对其进行评估。
您可以使用defun定义函数,并以这种方式测试。您可以访问GNU Emacs内置函数的 ALL 以及已加载的任何内容。如果你想保留一些东西,你可以将它们放在.emacs文件中。
答案 11 :(得分:0)
https://github.com/fogus/himera
我很容易在https://www.nitrous.io虚拟框上进行设置。创建一个漂亮的Web界面。
在我的Windows(XP)框上下载并运行clojure-1.6.0.jar就像使用此脚本运行REPL一样简单:
java -cp clojure-1.6.0.jar clojure.main