【发布时间】:2016-01-06 06:29:11
【问题描述】:
我正在尝试评估我的 CLJS 函数声明是否是惯用的。这是我尝试将 JS 函数转换为其相应的 CLJS 函数。 (可以忽略函数的实际内容)。
JavaScript 函数:
var dir = require('node-dir');
function jsFunc(path) {
dir.files(path, function(err, files) {
if (err) throw err;
files = files.filter(function (file) {
return file.endsWith('.dec');
});
console.log(files);
});
}
我的 ClojureScript 翻译:
(defn cljs-func [input-path]
(let [dir (node/require "node-dir")]
(.files dir input-path (fn [err files]
(println (.filter files (fn [file] (.endsWith file ".dec")))))))
【问题讨论】:
-
可能更适合代码审查网站 - 因为此代码按预期工作,对吧?
-
@cfrick “你可以忽略函数的实际内容”听起来它并不适合 Code Review。 Code Review 是关于做事情的工作代码,它与发生的事情相关。因此,这可能不适合该网站:/
-
好吧,那么这是我的 2ct:我会使用 clojurescripts 自己的
filter,对于像 .endsWith 这样简单的东西,只需检查#(.endsWith % ".dec")。 cljs 版本也忽略了err的情况。并且至少在浏览器中println的行为与console.log不同。
标签: node.js clojure clojurescript