小编use*_*375的帖子

Haskell:定义具有函数范围的新数据类型

在Haskell中,是否可以在函数范围内定义数据类型?

例如,我正在编写一个函数f :: [(Char, Int)] -> [(Char, String)].在函数的实现中,我将从输入列表构建一个树,然后遍历树以构建输出列表.一种解决方案是定义一个特定于我的问题的新Tree数据类型,以及两个辅助函数,一个用于将输入列表转换为Tree,另一个用于遍历Tree并构建输出列表.

现在可以通过将两个辅助函数f放入where子句中来轻松地将它们拉入范围,但是临时nonce类型Tree呢?通过在函数范围之外定义它来污染命名空间似乎很难看,但我不知道如何做到这一点.

对于上下文,事实证明我正在计算霍夫曼编码.我现在对找到替代算法并不是特别感兴趣,因为我怀疑在Haskell中定义辅助函数之间的辅助数据类型通常很有用,所以我对这方面的一般方法感兴趣.

haskell

9
推荐指数
1
解决办法
252
查看次数

标签 统计

haskell ×1