(免责声明 - 我知道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之间的这种差异吗?
以下几页讨论了原子如何在Clojure中工作.它并没有充分说明Clojure和其他lisp方言中原子之间的差异.
Common Lisp中的原子和Clojure中的原子之间的主要区别是什么?(CL中存在的Clojure中的atom定义缺少什么?)
常见的LISP和Emacs LISP具有原子类型谓词.Scheme和Clojure没有它.http://hyperpolyglot.wikidot.com/lisp
是否存在设计原因 - 或者它不是包含在API中的基本功能?
Christian Queinnec写了一篇名为LISP In Small Pieces的杰作,其中包括11个Lisp Interpreters和两个Lisp编译器.
当你去从网站下载的代码在这里 -它的评论:
The programs of this book are available on the net.
These programs used to run with some Scheme systems around 1994.
Run Code Online (Sandbox Code Playgroud)
任何的想法:
(a)当时运行的计划系统是什么,更重要的是;
(b)今天会运行哪些计划系统?
Paul Irish有一个名为requestAnimationFrame的帖子,用于智能动画.现在保罗是一个聪明人 - 我只是想了解这个想法的应用范围.
他说要做HTML5动画 - 你应该像这样使用requestAnimationFrame垫片:
// shim layer with setTimeout fallback
window.requestAnimFrame = (function(){
return window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
function( callback ){
window.setTimeout(callback, 1000 / 60);
};
})();
// usage:
// instead of setInterval(render, 16) ....
(function animloop(){
requestAnimFrame(animloop);
render();
})();
// place the rAF *before* the render() to assure as close to
// 60fps with the setTimeout fallback.
Run Code Online (Sandbox Code Playgroud)
这是可以理解的.我们可以在这样的JSFiddle中应用它,结果非常好.
但如果我撕掉垫片层功能,那么在Chrome 31和Firefox 24中它可以正常工作.
因此,如果我查看RequestAnimationFrame函数的兼容性 - …
在Hoare的1978年论文中,我们有一个名为Communicating Sequential Processes的想法.这由Go,Occam和core.async中的Clojure 使用.
是否可以使用CSP替代Scala中的Actor模型?(我正在看JCSP,但我想知道这是否是唯一的选择,如果它是成熟的,如果有人使用它).
编辑 - 我也看到通信Scala对象作为Scala中JCSP的替代品.但是这些似乎与真正的线程相关 - 这似乎错过了CSP的一个好处,就是要远离保持大量线程始终处于活动状态的内存资源成本.
在这次讨论 布赖恩·马里克使得该点let并for有单子Clojure中:
也就是说,真正通用的monad倾向于以特殊形式写入语言.Clojure是
let和formonad,但你不需要知道使用它们.
这是 let
user=> (let [c (+ 1 2)
[d e] [5 6]]
(-> (+ d e) (- c)))
8
Run Code Online (Sandbox Code Playgroud)
这是 for
user=> (for [x [0 1 2 3 4 5]
:let [y (* x 3)]
:when (even? y)]
y)
(0 6 12)
Run Code Online (Sandbox Code Playgroud)
我的问题是:为什么Clojure let和for两个monad?
麦卡锡的基本S函数和谓语atom,eq,car,cdr,cons
接着,他添加到他的基本符号,以便能够写他所谓的S-功能:quote,cond,lambda,label
在此基础上,我们将这些称为"LISP原语"(尽管我对类型谓词的论证持开放态度numberp)
如何defmacro在您选择的LISP中仅使用这些原语来定义函数?(包括计划和Clojure)
我有一个条形码阅读器和一堆书.对于每本书,我想在Excel电子表格中列出书名和作者.
我的观点是,一些连接到Amazon Web服务的VBA代码会使这更容易.
我的问题是 - 以前没有人这样做过吗?你能指点我最好的例子吗?
许多年前,一种名为Agitar的Java测试工具很受欢迎.它似乎做了类似基于财产的测试.
如今 - 基于Haskell Quickcheck的基于属性的测试很受欢迎.Java有许多端口,包括:
我的问题是:Agitar和Quickcheck基于属性的测试有什么区别?
clojure ×5
lisp ×5
common-lisp ×3
scheme ×3
actor-model ×1
barcode ×1
cons ×1
core.async ×1
elisp ×1
excel ×1
excel-vba ×1
haskell ×1
html5 ×1
java ×1
javascript ×1
let ×1
macros ×1
monads ×1
predicate ×1
primitive ×1
quickcheck ×1
racket ×1
scala ×1
sequence ×1
vba ×1