Как использовать продолжить в Clojure - PullRequest
0 голосов
/ 12 декабря 2018

Я пытаюсь реализовать этот фрагмент кода Python в Clojure:

# Make sure the probability exceeds threshold*next best
for cat in probs:      
if cat==best: continue
  if probs[cat]*self.getthreshold(best)>probs[best]: return default
return best 

Как использовать продолжение в Clojure.Какой механизм я должен использовать?

1 Ответ

0 голосов
/ 12 декабря 2018
(->> probs
     (remove (partial = best))
     (reduce (fn [best prob] strong text
                 (if (> (* prob (get-threshold best)) best)
                     (reduced default)
                     best)) best))

Скорее всего, полно ошибок, но суть в том, чтобы удалить те, где вероятность равна наилучшей, а затем уменьшить остальные из них до default.

Хитрость для раннего возвращения из снижения заключается в использовании reduced

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...