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