如何做Clojure计划?

时间:2015-09-28 07:04:41

标签: clojure

我是学习者,刚开始学习这个......

任何人都可以帮我吗???

将一个clojure程序写成一个函数,最频繁的单词,它有两个参数。第一个参数是一个字符串,第二个参数是一个整数,称之为n。 most-frequent-word返回字符串中出现最多的长度为n的序列字。例如(最频繁的单词“TCGAAGCTAGACGCTAGTAGCTAGTGTGCA”4)返回(“CTAG”“GCTA”)

1 个答案:

答案 0 :(得分:2)

开始提示:

尝试让您入门的一些提示:

  1. 您可以使用partition将字符串转换为"单词"的序列。请记住提供step的{​​{1}}参数,以便获得所有可能的重叠子序列。
  2. frequencies计算事物(包括序列)出现在集合中的次数。
  3. maxmax-key在其输入中搜索最高值。使用apply将集合的内容作为单独的输入检测到它们。
  4. 1将输出字符序列,而不是字符串。您可以使用clojure.string/join将它们转换回字符串。
  5. 如果你愿意,我可以更加明确,但对于初学者来说,在REPL中试验这些并尝试自己解决这些问题也很有价值。

    编辑:我的解决方案:

    对,这个特别的步骤有点模糊。由于您希望 all 具有最大频率的字符串,因此您需要执行的操作不仅仅是partition。我这样做的方法是首先找到max-key的频率值,然后过滤掉频率不同的任何键/频率对。

    max

    从性能的角度来看,这并不是很理想,但似乎比尝试在一次迭代中完成这两项工作更清晰地分离关注点(并且希望更容易理解)。