モジュールを使う。の続き
Data.Char
を使ってシーザー暗号でメッセージを暗号化し、他人に読めないようにする関数を実装する。
シーザー暗号は、各文字をアルファベット上で一定の数だけシフトするという暗号化方法。
以下の関数を使う
Data.Char.ord
文字を対応する数値に変換する
*Main Lib> Data.Char.ord 'a' 97
Data.Char.chr
ord
の逆のことをする
*Main Lib> Data.Char.chr 97 'a'
実装する
import Data.Char encode :: Int -> String -> String encode offset msg = map (\c -> chr $ ord c + offset) msg
実行結果
*Main> encode 2 "google" "iqqing"
複合する関数を実装する
decode :: Int -> String -> String decode shift msg = encode (negate shift) msg
実行結果
*Main> decode 2 "iqqing" "google"
所感
シーザーサラダ

- 作者: MiranLipovaca
- 出版社/メーカー: オーム社
- 発売日: 2017/07/14
- メディア: Kindle版
- 購入: 4人 クリック: 9回
- この商品を含むブログを見る