相关疑难解决方法(0)

使单个函数在列表,ByteStrings和文本(以及可能的其他类似表示)上工作

我正在编写一个函数,可以在一系列任意符号中进行搜索.我想使它足够通用,以便它可以在列表,Foldables以及ByteStrings和Texts上运行.将其概括Foldable为简单.但是如何包含ByteStrings和Texts?当然我可以转换ByteString成一个列表,然后调用我的功能,但我会失去所有的优势ByteString.

举一个具体的例子,假设我们想要制作直方图函数:

import Control.Monad.State
import qualified Data.Foldable as F
import Data.Map.Strict (Map)
import qualified Data.Map.Strict as Map
import Data.Word
import qualified Data.ByteString as B
import qualified Data.Text as T

type Histogram a = Map a Int

empty :: (Ord a) => Histogram a
empty = Map.empty

histogramStep :: (Ord a) => a -> Histogram a -> Histogram a
histogramStep k = Map.insertWith (+) k …
Run Code Online (Sandbox Code Playgroud)

text haskell fold bytestring lenses

9
推荐指数
3
解决办法
592
查看次数

标签 统计

bytestring ×1

fold ×1

haskell ×1

lenses ×1

text ×1