мне нужно широко использовать:Идиоматические способ взять подстроку байтовой строки
slice :: Int -> Int -> ByteString -> ByteString
slice start len = take len . drop start
Две части вопроса:
- ли это уже есть имя? Я не могу найти что-либо, ищущее этот тип в Hoogle, но похоже, что это должна быть действительно общая потребность. Я также попытался найти
(Int, Int) -> ByteString -> ByteString
и некоторые версииflip
'd. Я также попытался найти версии[a]
, чтобы узнать, есть ли общее имя. - Есть ли лучший способ написать его?
Я подозрительно, что я делаю что-то не так, потому что я ожидал найти много людей, которые пошли по тому же пути, но мой google-fu ничего не нашел.
Это актуально: http://stackoverflow.com/questions/4597820/does-haskell-have-list-slices-i-e-python – jozefg
Thanks jozefg. В одном из ответов там упоминается 'slice :: Int -> Int -> Vector a -> Vector a', поэтому это является прецедентом для выбора имени. –
Я уверен, что ваш путь - это идиоматический путь (и лучше, чем связанный ответ). Это также самый эффективный способ (обе операции - O (1)). –