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.159 tracks/clojure/exercises/scrabble-score/src/example.clj
trackler-2.2.1.158 tracks/clojure/exercises/scrabble-score/src/example.clj
trackler-2.2.1.157 tracks/clojure/exercises/scrabble-score/src/example.clj
trackler-2.2.1.156 tracks/clojure/exercises/scrabble-score/src/example.clj
trackler-2.2.1.155 tracks/clojure/exercises/scrabble-score/src/example.clj
trackler-2.2.1.154 tracks/clojure/exercises/scrabble-score/src/example.clj
trackler-2.2.1.153 tracks/clojure/exercises/scrabble-score/src/example.clj
trackler-2.2.1.152 tracks/clojure/exercises/scrabble-score/src/example.clj
trackler-2.2.1.151 tracks/clojure/exercises/scrabble-score/src/example.clj
trackler-2.2.1.150 tracks/clojure/exercises/scrabble-score/src/example.clj
trackler-2.2.1.149 tracks/clojure/exercises/scrabble-score/src/example.clj
trackler-2.2.1.148 tracks/clojure/exercises/scrabble-score/src/example.clj
trackler-2.2.1.147 tracks/clojure/exercises/scrabble-score/src/example.clj
trackler-2.2.1.146 tracks/clojure/exercises/scrabble-score/src/example.clj
trackler-2.2.1.145 tracks/clojure/exercises/scrabble-score/src/example.clj
trackler-2.2.1.144 tracks/clojure/exercises/scrabble-score/src/example.clj
trackler-2.2.1.143 tracks/clojure/exercises/scrabble-score/src/example.clj
trackler-2.2.1.142 tracks/clojure/exercises/scrabble-score/src/example.clj
trackler-2.2.1.141 tracks/clojure/exercises/scrabble-score/src/example.clj
trackler-2.2.1.140 tracks/clojure/exercises/scrabble-score/src/example.clj