문자열에서 후행 문자 'T'를 제거하고 동시에 관련 문자열을 첫 번째 문자열에서 제거 된 동일한 문자 수만큼 줄이십시오. Haskell Data.ByteString.Lazy.Char8에 압축 해제 기능이없는 이유는 무엇입니까?
{-# LANGUAGE OverloadedStrings #-}
import qualified Data.ByteString.Lazy.Char8 as C
zipTrim s q
| C.null s = (C.empty, C.empty)
| C.head (last $ C.group s) == 'T' =
unzip (C.zip (C.concat $ init $ C.group s) q)
| otherwise = (s, q)
는 그러나,
unzip
나에게
[Char]
한 쌍의 대신
Bytestring
한 쌍을 반환 다음과 같이
나는 시도했다.
https://hackage.haskell.org/package/bytestring-0.10.8.1/docs/Data-ByteString-Char8.html#v:unzip
왜 게으른 버전에 유사한 기능이되지 않습니다 :
비 게으른 버전은 Bytestring
한 쌍을 반환 압축 해제 기능이?
(내 공동 트리밍 문제에 더 나은 솔루션을 제안 주시기 바랍니다. 나는 너무 느린하지 뭔가를하고 싶습니다.) 게으른 bytestrings에 대한 언뜻
아마도 게으른 자음이 얼마나 게으른 지 분명하지 않기 때문일 수 있습니다. 엄격한 bytestrings을 lazy bytestrings로 변환 할 수 있습니다. –
아마도 좋은 이유는 없습니다. 누군가 잊은 것 같아요. http://hackage.haskell.org/package/bytestring-0.10.8.1/docs/src/Data-ByteString-Lazy.html#unzip – jberryman