added morse encoding, WIP
This commit is contained in:
parent
f5d35aa555
commit
3bd5530544
|
@ -26,6 +26,7 @@ library
|
|||
Encoding.Yenc
|
||||
Encoding.Rotate
|
||||
Encoding.LetterToNumber
|
||||
Encoding.Morse
|
||||
Encoding.Solve
|
||||
other-modules:
|
||||
-- Data.Bytes.Text.Ascii
|
||||
|
@ -45,7 +46,8 @@ library
|
|||
text,
|
||||
primitive,
|
||||
regex-tdfa,
|
||||
base64-bytestring
|
||||
base64-bytestring,
|
||||
MorseCode
|
||||
default-language: Haskell2010
|
||||
|
||||
executable based
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
module Encoding.Morse
|
||||
( encmorse
|
||||
, decmorse
|
||||
) where
|
||||
|
||||
import Text.Morse as M
|
||||
import Data.ByteString (ByteString)
|
||||
import qualified Data.ByteString.Char8 as BC
|
||||
|
||||
encmorse :: ByteString -> ByteString
|
||||
encmorse input = BC.pack $ encodeValidMorseChars (BC.unpack input)
|
||||
where
|
||||
encodeValidMorseChars :: String -> String
|
||||
encodeValidMorseChars = concatMap (\c -> if canEncodeToMorse c then M.encodeMorse [c] else "")
|
||||
|
||||
decmorse :: ByteString -> ByteString
|
||||
decmorse input = case M.decodeMorse (BC.unpack input) of
|
||||
"" -> BC.pack "Invalid Morse Code"
|
||||
decoded -> BC.pack decoded
|
||||
|
Loading…
Reference in New Issue