我想知道是否有办法从CommonLisp的REPL获取Linux的PID(进程ID)。也就是说,我想从进程本身的REPL中知道SBCL或Allegro进程的ID。 最佳答案 CommonLisp规范中没有任何内容实现这一点。进程ID过于依赖于实现。在SBCL中,SB-POSIX包为大多数POSIX系统调用提供Lisp接口(interface),因此您可以使用(sb-posix:getpid)。在AllegroCL中,操作系统接口(interface)函数位于EXCL.OSI包中,因此您可以使用(excl.ose:getpid)
我安装了slimv.vim(首先通过Archlinux上的yaourt,然后通过vimana),通过这两种方法,当我打开lisp文件时,slimv.vim不会加载。我已经搜索了谷歌搜索结果以获取调试帮助,这是我目前检查过的内容::scriptnames不显示slimv.vim,所以它根本没有被加载:filetype显示所有设置为ON的选项:setrtp?显示~/.vim作为第一个条目vim是用python编译的,显示+pythonslimv.vim及相关文件都在~/.vim/ftplugin/:echo$HOME显示正确的主目录slimv.vim是filetype=unix我已经尝试过
几个月前,我受到了PaulGraham撰写的宏伟书籍ANSICommonLisp的启发,以及Lisp可以用作Web开发中的secret武器的声明,该书由同一作者出版作者在他的博客上。哇,太棒了。那是我一直在寻找的东西。作者确实开发了一个成功的网络应用程序并将其出售给了雅虎。有了这些鼓舞人心的画面,我决定花一些时间(1年或2年,谁知道呢)学习CommonLisp。也许有一天我会开发我的Web应用程序并成为一名出色的Lisp专家。事实上,这是我第二次接触到Lisp的学习。第一次是几年前,当时我被著名的SICP着迷,但后来发现Scheme对于实际应用来说非常不成熟。在阅读了ANSICommo
目前,我为Web开发的几乎所有内容都使用PHP,但它的语言限制开始让我烦恼。然而,当我开发一些实践并维护一些对我有很大帮助的PHP库时,我觉得我不准备切换到LISP并丢弃我所有的PHP输出。在我只能访问常规LAMP托管帐户的服务器上,这甚至是不可能的。因此,我的问题是:LISP代码可以与PHP代码结合使用吗?是否有并行LISP/PHP的解决方案、它们的互操作性接口(interface)或可能只是一个对另一个的实现?还是互斥的选择? 最佳答案 这不是一个相互排斥的选择,您可以在一个系统上同时运行两者,就像perl和php(例如)在许多
我有一个内存不大的VPS(256Mb),我正在尝试将其用于使用SBCL+Hunchentoot进行CommonLisp开发,以编写一些简单的网络应用程序。大量内存似乎在没有做任何特别复杂的事情的情况下被使用,并且在服务页面一段时间后它耗尽内存并且使用所有交换变得疯狂或者(如果没有交换)就死了。所以我需要帮助:找出正在使用所有内存的内容(尤其是库或我)限制SBCL允许使用的内存量,以避免大量交换在内存耗尽时干净利落地处理事情,而不是崩溃(因为它是一个网络应用,我希望它继续运行并尝试清理)。我认为前两个相当简单,但第三个甚至可能吗?人们如何在Lisp中处理内存不足或内存受限的情况?(另外,
我发现自己在emacslisp中缺少的一件事是,令人惊讶的是,一个特殊的列表操作位。我怀念Python的简洁列表切片。>>>mylist=["foo","bar","baz","qux","frobnitz"]>>>mylist[1:4]['bar','baz','qux']我在emacs文档中看到了函数butlast和nthcdr,它们会从如下代码中得到相同的结果:(setqmylist'("foo""bar""baz""qux""frobnitz"))(butlast(nthcdr1mylist)1);;("bar""baz""qux")有没有比组合butlast和nthcdr更简
似乎嵌入式设备和机器人最需要的软件语言技能是C、C++和LISP。为什么没有更新的语言进入这些应用程序?例如,Erlang似乎特别适合机器人应用程序,因为它使并发编程更容易并允许代码热交换。Python如果仅出于对多种编程范式的支持的原因,它似乎很有用。我什至对Java没有涉足一般机器人编程感到惊讶。我确信一个论点是“一些较新的语言是解释的,而不是编译的”——这意味着编译的语言更快并且使用更少的计算资源。在我们可以在手机或SunSpot上安装Java虚拟机的时代,情况仍然如此吗?(而且LISP不是被解释了吗?) 最佳答案 我曾经基于
我是一名C++开发人员,正在慢慢进入Web开发领域。我非常喜欢LISP,但不喜欢可用于LISP的AllegroCL和网络框架。我正在寻找更多的自由和在语言层面上做酷黑客的能力。我不认为标签是对自然的犯罪。哪个更接近LISP:Python还是Ruby?我似乎无法从Python和Ruby中进行选择:它们看起来非常相似,但显然Ruby更具有功能性和面向对象,这是好事,而Python更像是Perl:一种简单的脚本语言。我的印象是否正确?PS-这可能看起来像一个火焰诱饵,但实际上并非如此,我只是尽量不要因为强制症而疯狂地从RoR切换到Python/Django并返回。
我想我了解Lisp宏及其在编译阶段的作用。但是在Python中,你可以将一个函数传递给另一个函数deff(filename,g):try:fh=open(filename,"rb")g(fh)finally:close(fh)所以,我们在这里得到惰性求值。我可以用宏而不是函数作为第一类对象来做什么? 最佳答案 首先,Lisp也有一流的函数,所以你不妨问:“既然我已经有了一流的函数,为什么还要在Lisp中使用宏”。答案是一流的函数不允许您使用语法。在外观层面上,一流的函数允许您编写f(filename,some_function)或f
如何在CommonLisp中创建一个连续数字的列表?也就是说,在CommonLisp中,Python的range函数等价于什么?在Python中,range(2,10,2)返回[2,4,6,8],第一个和最后一个参数是可选的。我找不到创建数字序列的惯用方法,尽管EmacsLisp有number-sequence。可以模拟范围usingloopmacro,但我想知道生成具有起点和终点以及步骤的数字序列的公认方法。相关:AnalogofPython'srangeinScheme 最佳答案 没有生成数字序列的内置方法,这样做的规范方法是执