小编Ano*_*ous的帖子

使用"def"更新var和"alter-var-root"之间的区别

使用"def"更新var并使用"alter-var-root"之间有什么区别?例如

(def x 3)
(def x (inc x))
Run Code Online (Sandbox Code Playgroud)

VS

(def x 3)
(alter-var-root #'x inc)
Run Code Online (Sandbox Code Playgroud)

clojure

25
推荐指数
3
解决办法
5494
查看次数

clojure库函数的大O.

任何人都可以指向一个资源,列出基本的clojure库函数的Big-O复杂性,如conj,cons等等?我知道Big-O会根据输入的类型而有所不同,但是,这样的资源是否可用?我对编写某些东西感到不舒服,却没有大致了解它的运行速度.

big-o clojure asymptotic-complexity

6
推荐指数
2
解决办法
2096
查看次数

使用"额外"括号定义函数

任何人都可以向我解释原因

((fn ([x] x)) 1)
Run Code Online (Sandbox Code Playgroud)

工作和返回1?(在fn之后有一个"额外的"括号组)不应该是以下吗?

((fn [x] x) 1)
Run Code Online (Sandbox Code Playgroud)

另外,

((fn (([x] x))) 1)
Run Code Online (Sandbox Code Playgroud)

(2个"额外"括号集)失败,出现"CompilerException System.ArgumentException:参数声明([x] x)应该是一个向量".为什么?

谢谢!

clojure

4
推荐指数
1
解决办法
137
查看次数

Clojure:替代使用互斥锁/锁和计数器

场景:我有一台服务器正在监听六个活动的TCP/IP连接.当"就绪"消息进入时,将在其自己的线程上引发事件.当服务器从每个连接收到"就绪"消息时,它需要运行"启动"功能.

我面向对象的解决方案可能涉及使用互斥锁和计数器.就像是:

int _countDown= 6;
object _lock;
void ReadyMessageReceivedForTheFirstTimeFromAConnection() {
    lock(_lock) {
      --_countDown; // 
       if (_countDown==0) Start();
    }
}
Run Code Online (Sandbox Code Playgroud)

如果不诉诸锁/互斥锁,怎么能在Clojure中解决这个问题呢?

networking clojure clojureclr

4
推荐指数
2
解决办法
499
查看次数

批量文件中的换行符通过插入符号&符号回显.(^&回声.)

所以今天我了解到可以通过以下命令设置换行符:

 set nl=^&echo.
Run Code Online (Sandbox Code Playgroud)

例如:

set nl=^&echo.
echo Hello%nl%world
Run Code Online (Sandbox Code Playgroud)

产量

Hello
world
Run Code Online (Sandbox Code Playgroud)

但为什么这有效呢?^&的意义是什么?

windows cmd batch-file

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