1

我最近正在尝试使用 ClojureScript 而不是 Clojure。

当我在 node.js 上编译和运行时

(.log js/console (range 10))

我有

$ node app      
{ meta: null,
  start: 0,
  end: 10,
  step: 1,
  __hash: null,
  'cljs$lang$protocol_mask$partition1$': 0,
  'cljs$lang$protocol_mask$partition0$': 32375006 }

看到这个简单的代码不起作用,我有点惊讶。

这是因为我的特定环境吗?我希望如此,如果这是我这边的问题,请提出建议。

这是编译好的js:

cljs.nodejs = {};
cljs.nodejs.require = require;
cljs.nodejs.process = process;
cljs.core.string_print = cljs.nodejs.require.call(null, "util").print;
var rxcljs = {core:{}};
console.log(cljs.core.range.call(null, 10));
4

2 回答 2

3

您可以使用console.log以下字符串表示形式(range 10)

(.log js/console (pr-str (range 10)))

或简单地使用以下println功能:

(println (range 10))

无论哪种情况,(0 1 2 3 4 5 6 7 8 9)都按预期打印。

于 2013-07-06T00:44:41.440 回答
2

看起来您想打印矢量;range返回一个惰性序列。

尝试这个:

(.log js/console (vec (range 10)))
于 2013-07-05T09:26:51.013 回答