2

私はScala 2.9.2 REPLを実行しています。次のメソッドをコピーして貼り付けると:

  def isPrime(num: Int): Boolean = {
    val ceiling = math.sqrt(num.toDouble).toInt
    (2 to ceiling) forall (x => num % x != 0)
  }

..ソース コードを含むファイル (適切に機能する場所) から Interactive Interpreter へ。私はこの例外を受け取ります:

java.lang.IllegalArgumentException: != 0): event not found
   at jline.console.ConsoleReader.expandEvents(ConsoleReader.java:426) 
   ...

問題は!文字です (感嘆符のないメソッドはうまく機能します)。

メソッドを REPL で機能させる方法はありますか?

4

2 に答える 2

1

このインスタンスを見逃している可能性があります:

https://issues.scala-lang.org/browse/SI-7650

しかし、paulp の修正には下位互換性がありません。

scala> :power
** Power User mode enabled - BEEP WHIR GYVE **
** :phase has been set to 'typer'.          **
** scala.tools.nsc._ has been imported      **
** global._, definitions._ also imported    **
** Try  :help, :vals, power.<tab>           **

scala> $r.r.in.asInstanceOf[scala.tools.nsc.interpreter.JLineReader].consoleReader.setExpandEvents(false)

scala> 1 != 2
res1: Boolean = true

2.11 でのクラッシュとは対照的に:

scala> 1 != 2
java.lang.IllegalArgumentException: != 2: event not found
于 2013-07-14T02:45:25.730 に答える