gpt4 book ai didi

node.js - 我对这个 JS 函数的 ClojureScript 翻译是否惯用?

转载 作者:太空宇宙 更新时间:2023-11-04 00:46:11 25 4
gpt4 key购买 nike

我正在尝试评估我的 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 在评论中指出的那样,您可以在某些方面使代码更加简洁(例如使用匿名函数,这是惯用的一次性使用且相对简单的函数)。一旦开始有多个参数,我认为为了可读性而使用内联函数声明开始更有意义。

我也赞同 @cfrick 的建议,即优先使用 clojurescript 版本的 filter 以及任何其他此类函数调用。我认为你对主机环境的直接依赖越少,你的代码就越可移植。当然,随着 reader conditionals 的引入,许多 clojure 项目正在走向这种趋势。在 Clojure 1.7 中。

关于node.js - 我对这个 JS 函数的 ClojureScript 翻译是否惯用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34626966/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com