(ns cipher-analytical-machine.cli.actions.cracking (:require [cipher-analytical-machine.analyzers.caesar :as caesar-analyzers] [cipher-analytical-machine.symbols.frequencies :as symbol-frequencies]) (:gen-class)) (defn cracking-caesar [options arguments] (let [analyzer (:analyzer options) message (:message options) symbols (:symbols options) frequencies symbol-frequencies/english-letter-frequencies] (cond (= analyzer "Chi^2") (caesar-analyzers/get-plaintext message symbols frequencies) :else (caesar-analyzers/get-plaintext message symbols frequencies)))) (defn cracking-actions [options arguments action-type] (let [cipher (:cipher options)] (cond (= cipher "Caesar") (cracking-caesar options arguments))))