2012-12-06 36 views
-2

我正在使用0和1代表的位 我有這個位列表[[1 ... 16],[17 ... 32],[33 .. .48]],並且我想爲每個8位字符對應一個char,並在所有結尾處使用函數chr或其他執行相同操作的函數,並假定我有一個函數可以將[Bit] - > Int轉換。例如haskell將Int列表轉換爲字符串

[[1...16],[17...32],[33...48]] 
    [1...8] = char one 
    [9...16] = char two 
    [17...24] = char three 
    [25...32] = char four 

    Then I want to make a String = char one ++ char two ++ char three ++ char four. 

謝謝。

+0

我的問題是單獨列出並在其上應用函數。 – user1876106

+0

仍然沒有看到問題...你有什麼嘗試? – Tim

回答

1

假設你有一個函數fromBits :: [Bit] -> Int,先拆你的輸入列表劃分爲8塊,例如使用chunksOfsplit包,那麼,對於每個塊,應用fromBits和使用chr所得到的Int轉換爲Char

map (chr . fromBits) $ chunksOf 8 input 
+0

問題的方式問它看起來像塊已經完成,在這種情況下,它只是'map(chr.fromBits)'。 – AndrewC