Refactor the project structure.
continuous-integration/drone/push Build is passing

This commit is contained in:
2023-10-11 21:12:10 +03:00
parent 77efa81c54
commit 4d7e9da1d1
15 changed files with 28 additions and 53 deletions
@@ -0,0 +1,47 @@
(ns cipher-analytical-machine.symbols.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")))