diff options
Diffstat (limited to 'scratch/brilliant/App.hs')
-rw-r--r-- | scratch/brilliant/App.hs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/scratch/brilliant/App.hs b/scratch/brilliant/App.hs index dd3f2788a254..bf39de4997ad 100644 --- a/scratch/brilliant/App.hs +++ b/scratch/brilliant/App.hs @@ -5,10 +5,20 @@ import Keyboard (Keyboard(..)) import Transforms (Transform(..)) import Utils ((|>)) +import qualified Data.Char as Char import qualified Utils +import qualified Keyboard +import qualified Data.HashMap.Strict as HM -------------------------------------------------------------------------------- transform :: Keyboard -> Transform -> Keyboard transform (Keyboard xs) HorizontalFlip = xs |> fmap reverse |> Keyboard transform (Keyboard xs) VerticalFlip = xs |> reverse |> Keyboard transform (Keyboard xs) (Shift n) = xs |> fmap (Utils.rotate n) |> Keyboard + +retypePassage :: String -> Keyboard -> Maybe String +retypePassage passage newKeyboard = + passage + |> fmap Char.toUpper + |> traverse (\c -> HM.lookup c Keyboard.charToCoord) + >>= traverse (Keyboard.coordToChar newKeyboard) |