将排序后的矢量中的前50个项目转换为另一个矢量(clojure)

时间:2011-04-21 20:51:06

标签: functional-programming clojure

已编辑,因为问题与同一计划有关。

我正在尝试将第一个向量中的前五十个项目写入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循环,因为它不是完全正常的功能。

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

您可能需要(apply struct storeinfo vals)之类的内容,其中vals是您分割的结果。这会将vals中的所有值解压缩到(struct storeinfo ...)的调用中,该调用会按照与其定义相同的顺序从初始值创建storeinfo