2017-10-22 3 views
2

[[0,1,1,0,0,0,0,1],[0,1,1,0,0,0,1,0]]のような値を持つ[[Int]]があります。バイナリで表される文字を計算する

これを "ab"などのASCII表現に変換する必要があります。

ハスケルでこれをどうやってやっていくのか、誰かに教えてください。

+3

ヒント:バイナリリストを数値に変換するにはどうすればよいですか? –

+8

あなたはどの部分に問題がありますか?これまでに何を試してみましたか? –

答えて

1

あなたができ:

  1. モジュールData.Char
  2. 使用mapからchrとその機能を構成するベース10の整数(INT)に整数(バイナリ)のリストを変換する関数を書きます(バイナリを10に変換してから文字に変換する)これらの合成関数を適用してバイナリrepのリストをマップし、それを文字列(文字列)のリストに変換します。
1

あなたは(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" 
関連する問題