小编Ter*_*aug的帖子

从Common Lisp执行shell命令

如何在Common Lisp程序中执行shell(bash)命令并将输出分配给变量?

lisp bash shell common-lisp exec

23
推荐指数
6
解决办法
1万
查看次数

什么#+#.在lisp意味着什么?

google几乎是不可能的,因此我的理解仅限于通过读取粘液源代码的上下文线索:也许它是普通lisp中对象系统的一部分?像'自我'这样的东西?

片段:

(cond #+#.(swank-backend::sbcl-with-new-stepper-p)
Run Code Online (Sandbox Code Playgroud)

也许这会使它更具有可谷歌性:磅加磅//哈希加哈希符号// octothorp plus octothorp

lisp common-lisp slime swank

20
推荐指数
2
解决办法
2330
查看次数

保罗格雷厄姆的ANSI Common Lisp中的组合示例

任何人都可以在Paul Graham的ANSI Common Lisp第110页中解释一个例子吗?

该示例尝试解释use&rest和lambda来创建函数式编程工具.其中之一是构成函数参数的函数.我找不到任何解释它是如何工作的东西.代码如下:

(defun compose (&rest fns)
  (destructuring-bind (fn1 . rest) (reverse fns)
    #'(lambda (&rest args)
        (reduce #'(lambda (v f) (funcall f v))
                rest
                :initial-value (apply fn1 args)))))
Run Code Online (Sandbox Code Playgroud)

用法是:

(mapcar (compose #'list #'round #'sqrt)
        '(4 9 16 25))
Run Code Online (Sandbox Code Playgroud)

输出是:

((2) (3) (4) (5))
Run Code Online (Sandbox Code Playgroud)

2号线和6号线对我来说看起来特别神奇.任何意见将不胜感激.

lisp reduce closures common-lisp paul-graham

13
推荐指数
3
解决办法
1339
查看次数


mapcar的多个参数

我确信在lisp中这是一个非常初学的问题,因为我只是学习语言.

我在clisp中有一个名为count的函数.它计算给定原子在列表中出现的次数.我想做的是能够使用不同的参数多次调用count,但是要搜索相同的列表.

例如,我想算的次数'A,'B以及'C在列表中,假设.我希望我能做到这样的事情:

(mapcar 'count '(A B C) myList)
Run Code Online (Sandbox Code Playgroud)

我发现这不起作用,因为每个元素'(A B C)只与myList中的一个元素配对.将具有附加输入参数的函数应用于列表中的每个项目的适当惯用方法是什么?

为了进一步澄清,我希望能采取'(A B C)'(A A B C C C)输入而产生(2 1 3).

lisp closures functional-programming common-lisp

9
推荐指数
1
解决办法
2585
查看次数

破解javascript的Javascript

我知道ClojureScript - 将clojure代码编译为javascript的可能性,但有可能反过来,拿一些javascript代码子集并将其转换回clojure吗?

javascript lisp clojure

9
推荐指数
1
解决办法
1719
查看次数

如何在为React Native捆绑js时阻止节点内存不足

使用ClojureScript为React Native捆绑js时出现以下错误.在捆绑javascript包时,似乎节点内存不足.使用ClojureScript时可能会发生这种情况,因为生成的js文件通常比vanilla js更大.

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory

<--- Last few GCs --->

  152689 ms: Mark-sweep 1369.3 (1434.8) -> 1362.8 (1434.8) MB, 2794.5 / 0 ms [allocation failure] [GC in old space requested].
  155498 ms: Mark-sweep 1362.8 (1434.8) -> 1362.9 (1434.8) MB, 2808.4 / 0 ms [allocation failure] [GC in old space requested].
  158508 ms: Mark-sweep 1362.9 (1434.8) -> 1362.8 (1434.8) MB, 3010.8 / 0 ms [last resort gc].
  161189 ms: Mark-sweep 1362.8 (1434.8) …
Run Code Online (Sandbox Code Playgroud)

clojurescript react-native cljsrn

9
推荐指数
2
解决办法
2610
查看次数

XML,S表达式和重叠范围......它叫什么?

我在读XML不是S-Expressions.XML范围是一种严格的,S表达式也是如此.在我见过的每种编程语言中,你都不能拥有以下内容:

<b>BOLD <i>BOTH </b>ITALIC</i>== BOLD BOTH ITALIC

它甚至不能用S-Expressions表达:

(bold "BOLD" (italic "BOTH" ) "ITALIC" ) == :(

是否有任何编程语言支持这种"重叠"范围?它有什么实际用途吗?

html lisp xml scope s-expression

6
推荐指数
1
解决办法
416
查看次数

如何定义swank服务器应该收听的地址?

启动swank服务器时,没有设置要绑定的地址的参数:

* (describe 'swank:create-server) 
=> ...
   Lambda-list: (&KEY (PORT DEFAULT-SERVER-PORT)
                (STYLE *COMMUNICATION-STYLE*) (DONT-CLOSE *DONT-CLOSE*)
                (CODING-SYSTEM *CODING-SYSTEM*))

...
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

lisp common-lisp slime swank

6
推荐指数
1
解决办法
1012
查看次数

如何使用子列表对列表进行排序(常见Lisp)

如何使用子列表对列表进行排序?

(setq list '((0) (1) (2) (0 1 5) (0 1 3) (0 1 5) (0 3 0) (0) (1) 
             (2 7 19) (0 0 3 0)))

; restricting the sort to only the first element:

(sort (copy-seq list) #'< :key #'car)

--> ((0) (0 1 5) (0 1 3) (0 1 5) (0 3 0) (0) (0 0 3 0) (1) (1) (2) (2 7 19))
Run Code Online (Sandbox Code Playgroud)

我正在寻找的输出是对子列表的所有元素排序:

--> ((0) (0) (0 0 3 0) (0 1 3) (0 1 …
Run Code Online (Sandbox Code Playgroud)

lisp sorting common-lisp

5
推荐指数
1
解决办法
7526
查看次数