HaskellのI/O - バイナリデータの操作 - ランダムなChar, I/Oアクション
入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)の UNIT4(HaskellのI/O)、LESSON 25(バイナリデータの操作)、25.2(JPEGのグリッチング) クイックチェック 25-3の解答を求めてみる。
コード
sample3.hs
import System.Random
main :: IO ()
main = do
c1 <- randomChar
c2 <- randomChar
c3 <- randomChar
c4 <- randomChar
c5 <- randomChar
let s = [c1, c2, c3, c4, c5]
print [c1, c2, c3, c4, c5]
putStrLn s
randomChar :: IO Char
randomChar = do
int <- randomRIO (0, fromEnum (maxBound :: Char) + 1)
return $ toEnum int
入出力結果(Terminal, Zsh)
% runghc sample3.hs
"\805239\230132\1113668\579973\506859"
% runghc sample3.hs
"\721350\326358\388962\305945\426314"
% runghc sample3.hs
"\994262\802358\67151\375354\818404"
𐙏
% runghc sample3.hs
"\88656\641332\1059453\979203\569943"
c
% runghc sample3.hs
"\232270\1041772\447622\469864\977624"
%