我的Clojure代码并没有在HackerRank上产生任何输出,但它在其他任何地方都有

时间:2015-04-30 05:26:22

标签: clojure jvm

目前我正在解决这个问题 " https://www.hackerrank.com/challenges/fp-sum-of-odd-elements"

这是我的代码

(fn func[lst]
  ((fn sumOdd[sum, index]
   (if (< index (.size lst))
     (do
      (if (= (mod (get lst index) 2) 1)
        (do
          (sumOdd (+ sum (get lst index)) (+ index 1))
          )
        (do
          (sumOdd (+ sum 0) (+ index 1))
          )
      )
     )
    sum
   )
 )0 0)
)

在HackerRank中,它假设使用list作为输入参数调用匿名函数,但是,我的代码根本不生成任何内容,但它在我的机器上本地生成。我在HackerRank上尝试了以下代码:

(fn [lst] lst)

并确实将输出生成为lst。我在这里做错了什么让我的代码普遍不一样?

2 个答案:

答案 0 :(得分:1)

到目前为止,我在您的解决方案中发现了一个错误。

问题陈述不保证解决方案函数的第一个参数正确响应get函数。

  • 如果以列表形式提供,则对其应用get函数会返回nil
  • e.g。 (get '(1 2 3) 1) ;=> nil

答案 1 :(得分:0)

试试这个

{name}_{repetition}:0