【发布时间】:2013-05-26 19:29:27
【问题描述】:
我需要大量使用:
slice :: Int -> Int -> ByteString -> ByteString
slice start len = take len . drop start
两部分问题:
- 这已经有名字了吗?我在 Hoogle 上找不到任何搜索该类型的东西,但它似乎应该是一个非常普遍的需求。我还尝试搜索
(Int, Int) -> ByteString -> ByteString和一些flip的相同版本。我还尝试寻找[a]版本,看看是否有常用名称。 - 有没有更好的写法?
我怀疑我做错了什么,因为我强烈希望能找到很多人走上同一条路,但我的 google-fu 没有找到任何东西。
【问题讨论】:
-
谢谢 jozefg。那里的答案之一提到了
slice :: Int -> Int -> Vector a -> Vector a,因此这是名称选择的先例。 -
我很确定您的方式是惯用的方式(并且比链接的答案更好)。这也是最有效的方式(两个操作都是 O(1))。
标签: haskell bytestring