是否可以在 Haskell 中创建像 Scala 2.8 那样的集合 api?
Scala 集合 api 有一些非常有趣的属性,我想知道如何在 Haskell 中实现它;或者如果有可能的话(或者总体来说是个好主意)。我是一个 haskell 新手,所以我想听听你的想法。
scala 映射定义如下所示:
def map[B, That](f: A => B)(implicit bf: CanBuildFrom[Repr, B, That]): That
该 API 的一个有趣功能是,如果映射字符串并且映射函数返回字符,则结果将是字符串类型(而不是字符列表)。
The Scala collections api has some pretty interesting properties and I'm wondering how one would implement it in Haskell; or if it's even possible (or a good idea in general). I'm a bit of a haskell newbie so I'd like to hear your thoughts.
The scala map definition looks like this:
def map[B, That](f: A => B)(implicit bf: CanBuildFrom[Repr, B, That]): That
An interesting feature of this API is that if you map over a string and your map function returns a character, the result will be of type string (and not a list of characters).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我们有一些与 Scala API 大致一样通用的东西。它被称为
可折叠
。http://www .haskell.org/ghc/docs/6.12.2/html/libraries/base-4.2.0.1/Data-Foldable.html
We have something roughly as general as the Scala API. It's called
Foldable
.http://www.haskell.org/ghc/docs/6.12.2/html/libraries/base-4.2.0.1/Data-Foldable.html
我想说 Scala 中的这个映射函数确实更接近 Haskell 中的这个函数:
其中列表类型只是另一个 Functor。
I want to say this map function in Scala is really closer to this from Haskell:
Where the list type is just another Functor.