Haskell では、文字の 2 つのリストを作成します。1 つはオリジナルの 26 文字のアルファベットで(A,B,C,D,....Z)
、すべて大文字です。もう1つは同じリストですが、 のように文字の順番を変えてい(B,H,A,I......S)
ます。そして、入力がB
thenの場合、 return H
、 return のように、これら 2 つのリストの間で置換も行いC
ますA
。
誰かがこれから私を助けることができますか?
変更されたアルファベットが次のとおりであると仮定します。
"ORXBMDTCIGJYKAVLSWFNUQEHZP"
コードは次のようになります。
import Data.List
import Data.Maybe
alphabet = ['A'..'Z']
mapping = zip alphabet "ORXBMDTCIGJYKAVLSWFNUQEHZP"
according letter = (snd . fromJust . (find (\t -> f t letter))) mapping
where
f (x, y) letter = x == letter
main = print $ according 'H'
mapping
アルファベットと変更されたバージョンの間の対応を作成します。そしてaccording
、元のものに基づいて、変更されたものから手紙を返します。