Sha256: 0c46a1dc6d34d0e09daa0ead74cb77ac2b293892db79e40adc919a4d6b88cedf

Contents?: true

Size: 663 Bytes

Versions: 396

Compression:

Stored size: 663 Bytes

Contents

(defpackage #:scrabble-score
  (:use #:cl)
  (:export #:score-word))

(in-package #:scrabble-score)

(defparameter *letter-scores*
  '((#\A . 1) (#\B . 3) (#\C . 3) (#\D . 2) (#\E . 1) (#\F . 4)
    (#\G . 2) (#\H . 4) (#\I . 1) (#\J . 8) (#\K . 5) (#\L . 1)
    (#\M . 3) (#\N . 1) (#\O . 1) (#\P . 3) (#\Q . 10) (#\R . 1)
    (#\S . 1) (#\T . 1) (#\U . 1) (#\V . 4) (#\W . 4) (#\X . 8)
    (#\Y . 4) (#\Z . 10)))

(defun score-letter (letter)
  "Returns the score for a single letter."
  (or (cdr (assoc letter *letter-scores* :test #'char-equal)) 0))

(defun score-word (word)
  "Computes the score for an entire word"
  (reduce #'+ word :key #'score-letter))

Version data entries

396 entries across 396 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/common-lisp/exercises/scrabble-score/example.lisp
trackler-2.2.1.179 tracks/common-lisp/exercises/scrabble-score/example.lisp
trackler-2.2.1.178 tracks/common-lisp/exercises/scrabble-score/example.lisp
trackler-2.2.1.177 tracks/common-lisp/exercises/scrabble-score/example.lisp
trackler-2.2.1.176 tracks/common-lisp/exercises/scrabble-score/example.lisp
trackler-2.2.1.175 tracks/common-lisp/exercises/scrabble-score/example.lisp
trackler-2.2.1.174 tracks/common-lisp/exercises/scrabble-score/example.lisp
trackler-2.2.1.173 tracks/common-lisp/exercises/scrabble-score/example.lisp
trackler-2.2.1.172 tracks/common-lisp/exercises/scrabble-score/example.lisp
trackler-2.2.1.171 tracks/common-lisp/exercises/scrabble-score/example.lisp
trackler-2.2.1.170 tracks/common-lisp/exercises/scrabble-score/example.lisp
trackler-2.2.1.169 tracks/common-lisp/exercises/scrabble-score/example.lisp
trackler-2.2.1.167 tracks/common-lisp/exercises/scrabble-score/example.lisp
trackler-2.2.1.166 tracks/common-lisp/exercises/scrabble-score/example.lisp
trackler-2.2.1.165 tracks/common-lisp/exercises/scrabble-score/example.lisp
trackler-2.2.1.164 tracks/common-lisp/exercises/scrabble-score/example.lisp
trackler-2.2.1.163 tracks/common-lisp/exercises/scrabble-score/example.lisp
trackler-2.2.1.162 tracks/common-lisp/exercises/scrabble-score/example.lisp
trackler-2.2.1.161 tracks/common-lisp/exercises/scrabble-score/example.lisp
trackler-2.2.1.160 tracks/common-lisp/exercises/scrabble-score/example.lisp