小编fog*_*gus的帖子

Clojure开发人员常见的编程错误

Clojure开发人员犯了哪些常见错误,我们如何避免这些错误呢?

例如; Clojure的新人认为这个contains?功能的作用是一样的java.util.Collection#contains.但是,contains?只有在使用索引集合(如地图和集合)并且您正在寻找给定键时,它才会起作用:

(contains? {:a 1 :b 2} :b)
;=> true
(contains? {:a 1 :b 2} 2)
;=> false
(contains? #{:a 1 :b 2} :b)
;=> true
Run Code Online (Sandbox Code Playgroud)

与数字索引集合(向量,数组)一起使用时,contains? 检查给定元素是否在有效索引范围内(从零开始):

(contains? [1 2 3 4] 4)
;=> false
(contains? [1 2 3 4] 0)
;=> true
Run Code Online (Sandbox Code Playgroud)

如果给出一个列表,contains?将永远不会返回true.

clojure

92
推荐指数
7
解决办法
2万
查看次数

APL与A对J与K对比?

数组语言环境虽然令人着迷,却令人困惑.是否有理由选择J或K或APL或A中的一个?这些选项似乎都不是开源的 - 是否有开源版本?我很想扩大我的想法,但我仍然感到困惑.

j apl k

74
推荐指数
3
解决办法
1万
查看次数

带有宏的第一个Lisp?

McCarthy的原始Lisp和其他一些化身之后没有像我们现在在Common Lisp,Clojure,Scheme等中拥有的宏设施......我知道.

然而,我不清楚到底是如何形成宏的,首先是它们有什么实现,以及它们的动机是什么.如果您愿意,可以参考论文和来源.

lisp macros clojure common-lisp

15
推荐指数
2
解决办法
671
查看次数

强迫自己掌握Emacs

假设存在肤浅的知识,那么如何强制掌握Emacs呢?

还假设所述人目前使用的是Aquamacs,但经常使用Mac OS X- isms.这个人很认真(这次肯定),需要一些建议.

macos emacs

12
推荐指数
3
解决办法
3972
查看次数

Erlang的优点(比如node.js)?

我意识到它们是用来解决不同问题的不同的野兽,但我想要一个列举的Erlang优于node.js的列表(反之亦然).你什么时候用一个而不是另一个?

erlang comparison node.js

12
推荐指数
2
解决办法
3378
查看次数

高级架构(HLA)与分布式交互式仿真(DIS)

是否对HLADIS仿真框架进行了高级概述?一个人可以主持另一个,反之亦然吗?

simulation high-level-architecture

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

焦油的有趣用法......但是发生了什么?

我在同事的Bash脚本中看到了tar的以下有趣用法:

`tar cf - * | (cd <dest> ; tar xf - )`
Run Code Online (Sandbox Code Playgroud)

显然它的工作方式与rsync -av相似,但速度更快.问题出现了,怎么样?

-m


编辑:任何人都可以解释为什么这个解决方案优于以下?

cp -rfp * dest
Run Code Online (Sandbox Code Playgroud)

前者更快吗?

bash scripting tar

10
推荐指数
3
解决办法
2739
查看次数

使用Clojure的gem中提供的JRuby类

我很简单地需要在Clojure中使用Ruby类.复杂的因素是该类是在宝石中提供的.最佳方法是按照以下方式设置我的Leiningein项目文件:

(project foo ""
  ...
  :dependencies [[clojure ...]
                 [jruby ...  ]])
Run Code Online (Sandbox Code Playgroud)

同样,我更愿意只检查gem及其依赖项到本地repo目录中.因此,从我理想的用法是:

(ns bar.baz
  (require [jruby.something :as jruby])

(def obj (jruby/CreateAnInstance "TheGemClass"))

(def result (jruby/CallAMethod obj "method_name" some args))
Run Code Online (Sandbox Code Playgroud)

谢谢.

ruby gem interop jruby clojure

10
推荐指数
1
解决办法
721
查看次数

Common Lisp的合约设计?

来自Clojure的背景,我认为它的前/后条件作为合同设计的基础:

;; sqr.clj

(defn sqr [n]
  {:pre  [(not= 0 n) (number? n)]
   :post [(pos? %) (number? %)]}
  (* n n))

(sqr 10)
;=> 100

(sqr 0)
; Assertion error
Run Code Online (Sandbox Code Playgroud)

Common Lisp中是否有类似的前/后功能和/或更全面的Design by Contract库?

谢谢

lisp design-by-contract clojure common-lisp

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

Common Lisp a Lisp -n?

我知道Common Lisp对函数和变量有不同的绑定环境,但我相信它还有另一个绑定环境用于标签体标签.是否有比这更具约束力的环境?如果是这样,那么将Common Lisp归类为Lisp-2是否公平?

这些问题并不意味着迂腐或自行车脱落,我只想更好地了解Common Lisp,并希望能够深入了解哪里可以深入挖掘其规格.

lisp namespaces common-lisp lisp-2

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

KRC和SASL对Haskell的影响?

在学习Haskell时,我在研究Kent递归计算器和SASL函数语言方面采取了一条小路(可以这么说).我立刻被他们和Haskell之间的相似性所震惊,因为他们早于它,我想知道他们是否/如何提供影响力.

关于KRC和SASL对Haskell的影响(或缺乏影响)的任何信息都将非常感激.

haskell functional-programming sasl lazy-evaluation

3
推荐指数
1
解决办法
495
查看次数

node.js和ZeroMQ之间的高级差异?

请原谅我的无知,但是对于(例如)node.js与ZeroMQ的高级概述是什么?

comparison zeromq node.js

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

如何只给出.git目录的git项目?

因此,互联网上有人写了大量代码并将其全部存储在github上.有一天,那个人刚刚起来,并且删除了他所有的存储库.值得庆幸的是,他的主要项目有许多分叉,但仍有许多较小的回购没有分叉.但是,我设法使用Github API定期删除所述人的回购,因此拥有所有上述"小项目"的副本.但是,有一个问题:我所拥有的是各个repo的.git目录的内容.

我不清楚如何利用这些.git dirs来有效地分叉它们,从而创建相应的repos的相当完整的镜像.

任何指导?

-m

git github

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