将排序向量中的前五十项放入另一个向量中(clojure)

发布于 2024-11-02 15:25:48 字数 422 浏览 1 评论 0原文

已编辑,因为问题是关于同一个程序的。

我试图获取第一个向量中的前 50 个项目并将它们写入 topfifty 变量,以返回在其他地方使用。

 "gets the closest 50 locations in the file fName and writes them out by sending a function     to the agent"
  [fName]
  (let [sorted (sort-by sortFn (makeStructs fName))
        topFifty ;TODO take the top 50 from sorted 
        ]

我到底如何在 Clojure 中做到这一点?我是这门语言的新手,从未使用过 lisp。我宁愿不使用 for 循环,因为这不完全是函数式的。

EDITED because question is about same program.

I'm trying to take the top fifty items in the first vector and write them to the topfifty variable, to return to use elsewhere.

 "gets the closest 50 locations in the file fName and writes them out by sending a function     to the agent"
  [fName]
  (let [sorted (sort-by sortFn (makeStructs fName))
        topFifty ;TODO take the top 50 from sorted 
        ]

How exactly do I do this in clojure? I'm new to the language and have never used lisp. I'd rather not use a for loop as that is not exactly functional-ish.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

北斗星光 2024-11-09 15:25:48

要回答新问题(我的其他答案所回答的问题已被替换):(take 50 returned) 将返回 sorted 的前 50 个元素。

To answer the new question (the question that my other answer was in response to has been replaced): (take 50 sorted) will return the first 50 elements of sorted.

梦言归人 2024-11-09 15:25:48

您可能需要类似 (apply struct storeinfo vals) 的内容,其中 vals 是拆分的结果。这会将 vals 中的所有值解压到对 (struct storeinfo ...) 的调用中,这会根据 中的初始值创建一个 storeinfo与其定义的顺序相同。

You probably want something like (apply struct storeinfo vals), where vals is the result of your split. This unpacks all of the values in vals into a call to (struct storeinfo ...), which creates a storeinfo from initial values in the same order as its definition.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文