2
[[0,1,1,0,0,0,0,1],[0,1,1,0,0,0,1,0]]
のような値を持つ[[Int]]
があります。バイナリで表される文字を計算する
これを "ab"などのASCII表現に変換する必要があります。
ハスケルでこれをどうやってやっていくのか、誰かに教えてください。
[[0,1,1,0,0,0,0,1],[0,1,1,0,0,0,1,0]]
のような値を持つ[[Int]]
があります。バイナリで表される文字を計算する
これを "ab"などのASCII表現に変換する必要があります。
ハスケルでこれをどうやってやっていくのか、誰かに教えてください。
あなたができ:
Data.Char
map
からchr
とその機能を構成するベース10の整数(INT)に整数(バイナリ)のリストを変換する関数を書きます(バイナリを10に変換してから文字に変換する)これらの合成関数を適用してバイナリrepのリストをマップし、それを文字列(文字列)のリストに変換します。あなたは(ASCIIのサブセットとなっている)Unicodeコードポイントとして整数を解釈するchr
を使用し、その後、その整数値を計算するために、リスト上foldl
を行うことができます。
λ> import Data.Char (chr)
λ> fmap (chr . foldl (\x y -> 2*x + y) 0) [[0,1,1,0,0,0,0,1],[0,1,1,0,0,0,1,0]]
"ab"
ヒント:バイナリリストを数値に変換するにはどうすればよいですか? –
あなたはどの部分に問題がありますか?これまでに何を試してみましたか? –