muszę dokonać szerokie zastosowanie:Idiomatic sposób podjąć podciąg o ByteString
slice :: Int -> Int -> ByteString -> ByteString
slice start len = take len . drop start
dwuczęściowego pytanie:
- Czy to już ma imię? Nie mogę znaleźć niczego, czego szukałbym w Hoogle, ale wygląda na to, że powinno to być naprawdę powszechną potrzebą. Próbowałem również poszukać
(Int, Int) -> ByteString -> ByteString
i niektórych wersji tego samego . Próbowałem również szukać wersji[a]
, aby sprawdzić, czy istnieje nazwa powszechnie używana. - Czy istnieje lepszy sposób na zapisanie go?
Jestem podejrzliwy, że robię coś złego, ponieważ mocno oczekiwałem, że znajdę wiele osób, które poszły tą samą drogą, ale moje google-fu niczego nie znajduje.
Jest to istotne: http://stackoverflow.com/questions/4597820/does-haskell-have-list-slices-i-e-python – jozefg
Dzięki jozefg. Jedna z odpowiedzi wspomina o 'slice :: Int -> Int -> Vector a -> Vector a', co jest precedensem dla wyboru nazwy. –
Jestem prawie pewien, że twoja droga jest idiomatyczna (i lepsza niż połączona odpowiedź). Jest to również najbardziej efektywny sposób (obie operacje to O (1)). –