我开始学习Clojure,但是对于某些概念我感到困惑。例如,我想做的是将这个函数转换为调用get-origlabels的惰性执行。
(defn get-all-origlabels []
(set (flatten (map get-origlabels (range *song-count*)))))
我的第一次尝试使用递归,但是由于歌曲数约为10,000,导致堆栈溢出。我无法想出如何使用尾递归来解决这个问题。
每次调用get-origlabels函数时都会返回一个集合,但是值经常在调用之间重复。实际上,get-origlabels函数的作用是读取一个文件(对于从0到歌曲数-1的每个值都是不同的文件),并将其中存储的单词以集合形式返回。
非常感谢任何指针!
谢谢! -Philip
set
函数是渴望执行的。 - Stuart Sierra