Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (ns dp399)
- (defn letter?
- [c]
- (or (<= (int \a) (int c) (int \z))
- (<= (int \A) (int c) (int \Z))))
- (defn uppercase?
- [c]
- (<= (int \A) (int c) (int \Z)))
- (defn char-to-lowercase
- "returns nil if `c` isn't a letter"
- [c]
- (if (not (letter? c))
- nil
- (if (not (uppercase? c))
- c
- (as-> c $
- (int $)
- (- $ (int \A))
- (+ $ (int \a))))))
- (defn char-to-num
- "convert a character to a number, where `\\a` is 1 and `\\z` is 26. if given a
- non-alphabetical character, returns nil"
- [c]
- (if (not (letter? c))
- nil
- (as-> c $
- (char-to-lowercase $)
- (int $)
- (- $ (int \a))
- (inc $))))
- (defn sum-string-chars
- "get the sum of the string's characters (as converted with `char-to-num`)"
- [s]
- (reduce +
- (as-> s $
- (for [c s :when (letter? c)]
- (char-to-num c)))))
Advertisement
Add Comment
Please, Sign In to add comment