标签: common-lisp

Lisp有什么好的"丰富"IDE?

Lisp有什么好的"丰富"IDE?通过"丰富"来澄清我的意思是它应该有一个很好的查找参考,自动完成,自动包含,检查各种类型,某种编译支持,版本管理,REPL等.我已经回顾了一些以前的问题/ answers(比如什么是适用于Windows的Common Lisp实现?)但它确实没有达到我的需要/问题.我已经习惯了Eclipse并且已经找到了(CUSP,但活动/支持似乎很轻松).

不要麻烦我关于"富"IDE的短语,说emacs或史莱姆是美妙的,它是和IDE.我明白,我在大学期间已经使用了emacs多年.我想知道在Visual Studio,Netbeans或Eclipse中还有哪些(和更好的),类型UI和功能集?

lisp eclipse ide common-lisp

14
推荐指数
2
解决办法
1万
查看次数

Common Lisp练习/问题

我现在正在通过Practical Common Lisp工作

http://www.gigamonkeys.com/book/

这是一本很好的书,最后有一些实际的任务,但我正在寻找探索函数,变量和宏的使用的基本问题.任何人都可以提出合适的资源来加强所提出的概念吗?

lisp common-lisp

14
推荐指数
2
解决办法
7018
查看次数

常见的lisp cons从两个符号创建一个列表,clojure cons需要一个seq来构建?

(免责声明 - 我知道Seqs在Clojure中的重要性)

在常见的lisp中,cons函数可用于将两个符号组合成一个列表:

(def s 'x)
(def l 'y)
(cons s l)
Run Code Online (Sandbox Code Playgroud)

在clojure中 - 你只能使用一个序列 - 缺点还没有扩展到使用两个符号.所以你必须写:

(def s 'x)
(def l 'y)
(cons s '(l))
Run Code Online (Sandbox Code Playgroud)

在Clojure中有更高级别的模式可以解释Common LISP和Clojure之间的这种差异吗?

lisp clojure common-lisp sequence cons

14
推荐指数
2
解决办法
1341
查看次数

服务器端的Common Lisp或Scheme?

我想知道是否有一些函数式语言用于Web开发,哪些是最有用的并且支持这个目标?

scheme functional-programming common-lisp

14
推荐指数
3
解决办法
3015
查看次数

(随机)Common Lisp不是随机的吗?

好的,最后的问题,我将在Common Lisp完成我的猜数游戏!:D无论何时游戏开始(或者在第一场比赛后开始新游戏),都会调用以下函数.

;;; Play the game
(defun play ()
    ;; If it's their first time playing this session,
    ;; make sure to greet the user.
    (unless (> *number-of-guesses* 0)
        (welcome-user))
    ;; Reset their remaining guesses
    (setq *number-of-guesses* 0)
    ;; Set the target value
    (setq *target*
        ;; Random can return float values,
        ;; so we must round the result to get
        ;; an integer value.
        (round
            ;; Add one to the result, because
            ;; (random 100) yields a number between
            ;; …
Run Code Online (Sandbox Code Playgroud)

lisp random sbcl common-lisp

14
推荐指数
1
解决办法
6776
查看次数

将项目添加到列表末尾的"缺点"是什么?

将项目添加到列表末尾的典型方法是什么?

我有一个列表(1 2 3)并想要添加4(其中4是评估结果(+ 2 2))

(setf nlist '(1 2 3))  
(append nlist (+ 2 2))  
Run Code Online (Sandbox Code Playgroud)

这表示append需要一个列表,而不是一个数字.我怎么做到这一点?

lisp list append common-lisp

14
推荐指数
4
解决办法
3万
查看次数

Lisp:如何覆盖CLOS类的默认字符串表示?

在Common Lisp中,如何覆盖CLOS类的默认字符串表示形式,以便调用formatprinc打印可理解的内容,即使该类的对象嵌入其他类型(如列表或数组)中也是如此?

例如,如果我(format t "~a~%" x)在x持有我的解决方案类的实例时调用,我希望它打印出类似的东西#<SOLUTION genes: #(1 2 3) scores: #(4 5) rank: 6>而不是#<SOLUTION {BB7CD31}>.

到目前为止,我已经设法弄清楚是编写自定义函数来处理我知道将包含此类实例的打印结构,但这很乏味.当然Lisp提供了一些免费获得此功能的方法吗?

lisp string common-lisp representation clos

14
推荐指数
2
解决办法
2799
查看次数

我可以在Clisp中保存源文件吗?

我是初学程序员,正在浏览"Land of Lisp"这本书.

我一直在用REPL输入书中的例子.是否可以将我当前的程序保存为.lisp文件,以便我可以加载它并在以后继续处理它?我知道我可以在文本编辑器中创建.lisp文件并加载它们,但我很乐意在全屏模式下使用REPL来做示例.

lisp clisp common-lisp land-of-lisp

14
推荐指数
1
解决办法
6646
查看次数

普通的lisp中的#'

在Practical Common Lisp一书的第3章中,有一个类似SQL的选择和函数的例子.这是它的简化版本:

(defun where (x) 
   #'(lambda (item)
     (> item x)))
Run Code Online (Sandbox Code Playgroud)

它像这样使用:

(remove-if-not (where 2) (list 1 2 3 4))
Run Code Online (Sandbox Code Playgroud)

在本书的前面部分解释说,#'序列用于表示它后跟一个函数名,而不是一个需要评估的变量.我不明白为什么这里需要它.我尝试在where没有它的情况下实现该功能,它也可以工作:

(defun where (x) 
   (lambda (item)
     (> item x)))
Run Code Online (Sandbox Code Playgroud)

我试着谷歌搜索它,并且,正如你可以想象的那样,通过这样一系列的角色,它不是一个非常有成效的搜索.我不知道这件事的名字.在上面的代码中是否有任何特殊原因需要它?

common-lisp quote

14
推荐指数
2
解决办法
6538
查看次数

Common Lisp:Hunchentoot和REPL - 当我启动服务器时,我在REPL中得到日志输出,不能再使用REPL了

就像这里的一些问题,我是Lisp的新手.我正在阅读Practical Common Lisp一书,但是稍微看了一下设置一个Web应用程序是多么容易,所以我一直在关注这个教程,以及这里更新版本.

当我到达启动服务器的位置时,我的REPL就会死掉,然后我无法将任何东西推到服务器上*dispatch-table*.

所以基本上,我的代码在REPL中工作得很好,将对象添加到列表中,检索它们等等,然后我启动服务器使用

(setf *web-server* (start (make-instance 'hunchentoot:acceptor :port 8080)))
Run Code Online (Sandbox Code Playgroud)

哪个很好用,我可以访问它http://localhost:8080.但是当我访问它时,日志会打印到REPL,从那时起我无法实际使用REPL.例如,在Adam Petersen的帖子之后,我不能那么做

(push (create-prefix-dispatcher "/retro-games.htm" 'retro-games) *dispatch-table*)
Run Code Online (Sandbox Code Playgroud)

因为REPL没有反应.我尝试从不同的窗口(即从终端的SBCL)启动服务器但是它不知道我所处的上下文 - 它不理解我正在处理的包或我的任何代码.

我使用的是略微非标准的设置; 我在OSX上使用Sublime Text 2和SublimeREPL和SBCL(因为我真的没有进入Emacs和ST2很棒!).我描述我是如何把它一起在这里 -但我真的只张贴的以防万一,我会感到惊讶,如果它是我的设置造成的问题,而不是我失去了一些基本的东西.

无论如何,我知道我可以继续在更像生产的环境中设置hunchentoot,并且已经看到一些详细说明并远程访问REPL的帖子,但是我希望有一些更简单的东西可以解决我的问题.我错过了.

lisp sbcl common-lisp hunchentoot sublimetext2

14
推荐指数
1
解决办法
1064
查看次数