HaskellのI/O - バイナリデータの操作 - JPEGのグリッチング
入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)の UNIT4(HaskellのI/O)、LESSON 25(バイナリデータの操作)、25.2(JPEGのグリッチング) クイックチェック 25-2の解答を求めてみる。
コード
glitcher.hs
import System.Environment ( getArgs )
import qualified Data.ByteString.Char8 as BC
main :: IO ()
main = do
args <- getArgs
let fileName = head args
imageFile <- BC.readFile fileName
let glitched = imageFile
let glitchedFileName = mconcat ["glitched_", fileName]
BC.writeFile glitchedFileName glitched
print "al done"
入出力結果(Terminal, Zsh)
% runghc glitcher.hs H._P._Lovecraft,_June_1934.jpg
"al done"
%