了解组合器

时间:2017-05-17 15:02:53

标签: scala

我对84中的FPiS书中的组合器有疑问。

object RNG {

  type Rand[+A] = RNG => (A, RNG)
}

val int: Rand[Int] = _.nextInt

如何解释type Rand[+A] = RNG => (A, RNG)_.nextInt下划线的含义是什么?

1 个答案:

答案 0 :(得分:4)

type定义是类型别名。这意味着您可以在Rand[A]的任何地方替换RNG => (A, RNG)。例如,Rand[Int] = RNG => (Int, RNG)

现在,由于我们知道int是一个带RNG的函数,我们可以将其定义为匿名函数,例如(r: RNG) => r.nextInt(您可能会看到nextInt特征中RNG的定义。 _是占位符,完全相同,无需为参数命名。