相关疑难解决方法(0)

Scala中下划线的所有用途是什么?

我已经看了scala-lang.org上的调查列表,并注意到一个奇怪的问题:" 你能说出"_"的所有用途吗? " 你能?如果是,请在此处进行.我们赞赏解释性的例子.

scala

513
推荐指数
7
解决办法
13万
查看次数

Scala 中的函数式编程练习 6.11。这种理解是如何工作的?

代码在这里:https : //github.com/fpinscala/fpinscala/blob/master/answers/src/main/scala/fpinscala/state/State.scala

  def simulateMachine(inputs: List[Input]): State[Machine, (Int, Int)] = for {
    _ <- sequence(inputs map ((modify[Machine] _) compose update))
    s <- get
  } yield (s.coins, s.candies)
Run Code Online (Sandbox Code Playgroud)

我不明白第二行在s <- get这个理解中是如何工作的。

据我所知,第一行创建了一个 State[Machine, List[Unit]] 并且 flatMap 用 _ 丢弃了 List[Unit]。

随后,在第二行中,我不明白如何get应用于Machine第一行中的创建。怎么Machine传下去?

编辑: 感谢 jwvh 和 Markus Appel 的答复,我现在知道这get是一个没有参数的方法,它返回一个State[S, S].

现在我想我明白了,但如果我错了,请纠正我。首先,我扩展了理解如下。

sequence(inputs map ((modify[Machine] _) compose update))
    .flatMap(_ => get
        .map(s => (s.coins, s.candies))
Run Code Online (Sandbox Code Playgroud)

get.map(s => (s.coins, s.candies)可以用 …

scala

5
推荐指数
1
解决办法
188
查看次数

标签 统计

scala ×2