如何在Common Lisp程序中执行shell(bash)命令并将输出分配给变量?
google几乎是不可能的,因此我的理解仅限于通过读取粘液源代码的上下文线索:也许它是普通lisp中对象系统的一部分?像'自我'这样的东西?
片段:
(cond #+#.(swank-backend::sbcl-with-new-stepper-p)
Run Code Online (Sandbox Code Playgroud)
也许这会使它更具有可谷歌性:磅加磅//哈希加哈希符号// octothorp plus octothorp
任何人都可以在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号线对我来说看起来特别神奇.任何意见将不胜感激.
我最近发现了Iphone的Lisp,想找一些代码示例.
https://github.com/TerjeNorderhaug/ecl-iphone-builder/#readme
我确信在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).
我知道ClojureScript - 将clojure代码编译为javascript的可能性,但有可能反过来,拿一些javascript代码子集并将其转换回clojure吗?
使用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) 我在读XML不是S-Expressions.XML范围是一种严格的,S表达式也是如此.在我见过的每种编程语言中,你都不能拥有以下内容:
<b>BOLD <i>BOTH </b>ITALIC</i>== BOLD BOTH ITALIC
它甚至不能用S-Expressions表达:
(bold "BOLD" (italic "BOTH" ) "ITALIC" ) == :(
是否有任何编程语言支持这种"重叠"范围?它有什么实际用途吗?
启动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)
我该怎么做?
如何使用子列表对列表进行排序?
(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 ×9
common-lisp ×7
closures ×2
slime ×2
swank ×2
bash ×1
cljsrn ×1
clojure ×1
ecl ×1
exec ×1
html ×1
ios ×1
iphone ×1
javascript ×1
paul-graham ×1
react-native ×1
reduce ×1
s-expression ×1
scope ×1
shell ×1
sorting ×1
xml ×1