相关疑难解决方法(0)

较高的kinded类型何时有用?

我一直在做F#开发一段时间,我喜欢它.然而,我知道在F#中不存在的一个流行语是更高级的类型.我已经阅读了关于高等类型的材料,我想我理解他们的定义.我只是不确定他们为什么有用.有人可以在Scala或Haskell中提供一些高级类型易于使用的示例吗?这需要F#中的变通方法?同样对于这些示例,如果没有更高级的类型(或F#中反之亦然),解决方法是什么?也许我只是习惯于解决它,我没有注意到这个功能的缺席.

(我认为)我得到的不是myList |> List.map fmyList |> Seq.map f |> Seq.toList更高的kinded类型允许你简单地写myList |> map f,它将返回一个List.这很好(假设它是正确的),但似乎有点小?(并且不能简单地通过允许函数重载来完成?)我通常转换为Seq无论如何然后我可以转换为我想要的任何东西.再说一次,也许我只是习惯于解决它.但有没有任何一个例子,高级类型的类型真的可以节省你的击键或类型安全?

f# haskell types scala higher-kinded-types

84
推荐指数
5
解决办法
8262
查看次数

monMap是flatMap的集合吗?

Scala具有Iterable[A]定义的特征

def flatMap[B](f: (A) ? GenTraversableOnce[B]): Iterable[B] 
Run Code Online (Sandbox Code Playgroud)

这肯定看起来像monad上的绑定函数,并且文档暗示它是monad,但有两个异议,一个是minor和一个major:

  • 次要的:传入的函数的返回类型是这个GenTraversableOnce.我认为这只是一种在评判monad时可以忽略的便利.
  • 主要的一个:monad的"值"是它包含的所有值的列表,但函数一次给出一个值.

这些问题会破坏收藏品的单一性吗?

monads scala

11
推荐指数
2
解决办法
4933
查看次数

标签 统计

scala ×2

f# ×1

haskell ×1

higher-kinded-types ×1

monads ×1

types ×1