public
Created

  • Download Gist
gistfile1.hs
Haskell
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
module Main where
 
import Data.Word8 (Word8, _cr, _space, _tab, isAsciiLower)
import qualified Data.ByteString as B
 
isSpace Word8 Bool
isSpace w = w == _space || w <= _cr && w >= _tab
 
toUpper Word8 Word8
toUpper w = if isAsciiLower w then w - _space else w
 
op Bool Word8 (Bool, Word8)
op flag c = if isSpace c then (True,c) else (False,d)
where d = if flag then toUpper c else c
 
main IO ()
main = B.readFile "input.txt" >>= B.putStr . snd . B.mapAccumL op True

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.