# Shardik42's solution

## to Pangram in the Clojure Track

Published at Aug 20 2020 · 0 comments
Instructions
Test suite
Solution

Determine if a sentence is a pangram. A pangram (Greek: παν γράμμα, pan gramma, "every letter") is a sentence using every letter of the alphabet at least once. The best known English pangram is:

The quick brown fox jumps over the lazy dog.

The alphabet used consists of ASCII letters `a` to `z`, inclusive, and is case insensitive. Input will not contain non-ASCII symbols.

## Submitting Incomplete Solutions

It's possible to submit an incomplete solution so you can see how others have completed the exercise.

### pangram_test.clj

``````(ns pangram-test
(:require [clojure.test :refer [is deftest]]
[pangram :refer [pangram?]]))

(deftest empty-sentence
(is (false? (pangram? ""))))

(deftest lowercase-pangram
(is (pangram? "the quick brown fox jumps over the lazy dog")))

(deftest missing-character-x
(is
(false?
(pangram? "a quick movement of the enemy will jeopardize five gunboats"))))

(deftest another-missing-character-x
(is
(false?
(pangram? "the quick brown fish jumps over the lazy dog"))))

(deftest with-underscores
(is (pangram? "the_quick_brown_fox_jumps_over_the_lazy_dog")))

(deftest with-numbers
(is (pangram? "the 1 quick brown fox jumps over the 2 lazy dogs")))

(deftest missing-letters-replaced-by-numbers
(is
(false?
(pangram? "7h3 qu1ck brown fox jumps ov3r 7h3 lazy dog"))))

(deftest mixed-case-and-punctuation
(is (pangram? "\"Five quacking Zephyrs jolt my wax bed.\"")))

(deftest upper-and-lower-not-counted-separately
(is
(false?
(pangram? "the quick brown fox jumps over with lazy FX"))))``````
``````(ns pangram
(:require [clojure.string :as str])
(:import [java.lang Character]))

(def ^:private alphabet (set "abcdefghijklmnopqrstuvwxyz"))

(defn pangram? [s]
(= alphabet
(->> s
str/lower-case
(filter #(Character/isLetter %))
set)))``````