小编mis*_*111的帖子

Haskell不从getLine返回

出于某种原因,我机器上的Haskell永远不会从任何getLine调用返回.例如,我尝试直接从Learn Your a Haskell for Great Good运行以下代码:

main = do  
    putStrLn "Hello, what's your name?"  
    name <- getLine  
    putStrLn ("Hey " ++ name ++ ", you rock!")  
Run Code Online (Sandbox Code Playgroud)

当我运行它时,第一行被打印,当我输入一个名字时,我看到了我的输入,但是当我按下Enter键时,程序只是阻塞那里并且从不打印最后一行.

我该怎么解决这个问题?

编辑:我从Sublime IDE运行它,也许这与它有关

haskell sublimetext

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

如何在Scala中将方法参数限制为子类类型

我有一个特征GameStatistics,它定义了一个add()方法,该方法接受一个参数并返回其自身和参数的总和。子类中的实现应该只接受它们自己类型的实例作为参数(或者也可能是子类型)。

我想使用此add方法来聚合列表GameStatistics,使用 Seq 的reduce方法。

我无法在 Scala 中定义它并使其编译。下面是我尝试过的一个示例及其编译错误。

这些错误对我来说没有任何意义。我应该如何让它发挥作用?

package bgengine

trait GameStatistics {
  def equity: Double

  def add[G: this.type](s: G): G

  def multiply(x: Double): GameStatistics
}

object GameStatistics {
  def aggregate(stats: Seq[GameStatistics]): GameStatistics = stats.reduce( _ add _ )
}

case class SimpleGameStatistics(equity: Double, nrGames: Int) extends GameStatistics {

  override def add[G: SimpleGameStatistics](s: G): G =
    SimpleGameStatistics((equity * nrGames + s.equity * s.nrGames) / (nrGames + s.nrGames), nrGames + s.nrGames).asInstanceOf[G] …
Run Code Online (Sandbox Code Playgroud)

generics scala

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

标签 统计

generics ×1

haskell ×1

scala ×1

sublimetext ×1