0
我試圖將索引x和y中由ByteString
s組成的矩陣中的字符更改爲不同的字符。最初,我使用[[Char]]
來表示矩陣,所以我可以使用.~
從Control.Lens.Setter
來更改該值,但這似乎不適用於[ByteString]
。Haskell:在ByteString中更改給定索引處的元素
有沒有什麼辦法可以像我現在正在做的那樣使用鏡頭或修改元件而不用unpack
ByteString
?
的代碼,現在,就是:
render :: [[Char]] -> [Loc Int] -> [[Char]]
render maze [] = maze
render maze (Loc (x,y):locs) = render mutate locs
where mutate = element y . element x .~ '*' $ maze
哪裏Loc
就是:
newtype Loc a = Loc (a,a) deriving (Show,Eq,Ord)
您可以使用'fromEnum'''或(with'Data.Char')'ord'''來避免32。 – dfeuer
也就是'fromIntegral。 fromEnum',這真的應該有一個名字。 – dfeuer