Further improve Middle Character and Twitter

Upon further inspection, Richard and I realized that we didn't need to have `parsed-outputs` at all in problems that just return a string (take the top value from the `:string` stack).

So we removed all that from the Middle Character and Twitter problems, and removed the unnecessary calls to `str` in the `levenshtein-distance` calls.

Co-authored-by: RichardLussier <lussi036@morris.umn.edu>
This commit is contained in:
Nic McPhee 2022-02-25 16:49:45 -06:00
parent cb33af755a
commit 404e640cfb
2 changed files with 6 additions and 16 deletions

View File

@ -47,19 +47,14 @@
(:step-limit argmap)) (:step-limit argmap))
:string)) :string))
inputs) inputs)
parsed-outputs (map (fn [output]
(if (= output :no-stack-item)
1000.0
output))
outputs)
errors (map (fn [correct-output output] errors (map (fn [correct-output output]
(if (= output :no-stack-item) (if (= output :no-stack-item)
10000 10000
(metrics/levenshtein-distance (str correct-output) (str output)))) (metrics/levenshtein-distance correct-output output)))
correct-outputs correct-outputs
parsed-outputs)] outputs)]
(assoc individual (assoc individual
:behaviors parsed-outputs :behaviors outputs
:errors errors :errors errors
:total-error #?(:clj (apply +' errors) :total-error #?(:clj (apply +' errors)
:cljs (apply + errors))))) :cljs (apply + errors)))))

View File

@ -50,19 +50,14 @@
(:step-limit argmap)) (:step-limit argmap))
:string)) :string))
inputs) inputs)
parsed-outputs (map (fn [output]
(try (read-string output)
#?(:clj (catch Exception e 1000.0)
:cljs (catch js/Error. e 1000.0))))
outputs)
errors (map (fn [correct-output output] errors (map (fn [correct-output output]
(if (= output :no-stack-item) (if (= output :no-stack-item)
10000 10000
(metrics/levenshtein-distance (str correct-output) (str output)))) (metrics/levenshtein-distance correct-output output)))
correct-outputs correct-outputs
parsed-outputs)] outputs)]
(assoc individual (assoc individual
:behaviors parsed-outputs :behaviors outputs
:errors errors :errors errors
:total-error #?(:clj (apply +' errors) :total-error #?(:clj (apply +' errors)
:cljs (apply + errors))))) :cljs (apply + errors)))))