Files
cipher-analytical-machine/src/cipher_analytical_machine/symbol_factories.clj
T
2023-09-21 21:01:52 +03:00

48 lines
997 B
Clojure

(ns cipher-analytical-machine.symbol-factories
(:require [clojure.string :as cs])
(:gen-class))
(defn english-alphabet-factory
"Return the English alphabet with only lowercase letters"
[]
(reduce
(fn [acc val] (str acc (char val)))
""
(range (int \a) (inc (int \z)))))
(defn ukrainian-alphabet-factory
"Return the Ukrainian alphabet with only lowercase letters"
[]
"абвгґдеєжзиіїйклмнопрстуфхцчшщьюя")
(defn digit-set-factory
"Return digits"
[]
"0123456789")
(defn punctuation-symbol-factory
"Return punctuation symbols"
[]
".,:;-!?")
(defn space-symbol-factory
"Return punctuation symbols"
[]
" \t\n")
(defn default-symbol-factory
"Return a default string of symbols for a language"
[language-code]
(cond
(= language-code "en")
(str (english-alphabet-factory)
\ )
(= language-code "uk")
(str (ukrainian-alphabet-factory)
\ )
:else
(default-symbol-factory "en")))