Sha256: 58a2f11af4f112608096dbd69178ccbca24b7dd22fd8ac9de511df18200e4047

Contents?: true

Size: 769 Bytes

Versions: 396

Compression:

Stored size: 769 Bytes

Contents

(ns scrabble-score
  (:require [clojure.string :refer [split]]))

;; The letter values as shown in the README
(def ^:private letter-values
  {"AEIOULNRST" 1
   "DG"         2
   "BCMP"       3
   "FHVWY"      4
   "K"          5
   "JX"         8
   "QZ"        10})

;; A map from letter (as string) to score
(def ^:private letter->score
  (reduce-kv (fn [acc letters score]
               (-> (map str letters)
                   (zipmap (repeat score))
                   (->> (merge acc))))
             {} letter-values))

;; Defaults to 0 for non-alphabetic input
(defn score-letter [letter]
  (get letter->score (.toUpperCase (str letter)) 0))

(defn score-word [word]
  (reduce (fn [score letter]
            (+ score (score-letter letter)))
          0 word))

Version data entries

396 entries across 396 versions & 1 rubygems

Version Path
trackler-2.2.1.139 tracks/clojure/exercises/scrabble-score/src/example.clj
trackler-2.2.1.138 tracks/clojure/exercises/scrabble-score/src/example.clj
trackler-2.2.1.137 tracks/clojure/exercises/scrabble-score/src/example.clj
trackler-2.2.1.136 tracks/clojure/exercises/scrabble-score/src/example.clj
trackler-2.2.1.135 tracks/clojure/exercises/scrabble-score/src/example.clj
trackler-2.2.1.134 tracks/clojure/exercises/scrabble-score/src/example.clj
trackler-2.2.1.133 tracks/clojure/exercises/scrabble-score/src/example.clj
trackler-2.2.1.132 tracks/clojure/exercises/scrabble-score/src/example.clj
trackler-2.2.1.131 tracks/clojure/exercises/scrabble-score/src/example.clj
trackler-2.2.1.130 tracks/clojure/exercises/scrabble-score/src/example.clj
trackler-2.2.1.129 tracks/clojure/exercises/scrabble-score/src/example.clj
trackler-2.2.1.128 tracks/clojure/exercises/scrabble-score/src/example.clj
trackler-2.2.1.127 tracks/clojure/exercises/scrabble-score/src/example.clj
trackler-2.2.1.126 tracks/clojure/exercises/scrabble-score/src/example.clj
trackler-2.2.1.125 tracks/clojure/exercises/scrabble-score/src/example.clj
trackler-2.2.1.124 tracks/clojure/exercises/scrabble-score/src/example.clj
trackler-2.2.1.123 tracks/clojure/exercises/scrabble-score/src/example.clj
trackler-2.2.1.122 tracks/clojure/exercises/scrabble-score/src/example.clj
trackler-2.2.1.121 tracks/clojure/exercises/scrabble-score/src/example.clj
trackler-2.2.1.120 tracks/clojure/exercises/scrabble-score/src/example.clj