【发布时间】:2015-11-02 05:48:23
【问题描述】:
我有以下 Common Lisp 代码的 sn-p:
(loop repeat len
do
(rotatef
(nth (random len) list)
(nth (random len) list))
finally
(return list)))))
我想使用 Clojure 运行。
不管怎样,编译器告诉我的
循环需要一个向量来绑定
这到底是什么意思?我必须在哪里引入向量?
【问题讨论】:
-
请注意,此 sn-p 不会执行有效的随机播放。如果您确实想要真正的洗牌,请使用 Fisher-Yates 方法。这并不难。
-
Clojure 和 Common Lisp 是非常不同的语言。代码无法翻译或移植。您需要重新开发大多数代码。不要期望语言结构是兼容的。大多数情况下他们不是。最好为其语言结构使用 Clojure 参考。
标签: loops clojure common-lisp