Один код может многого добиться в Scala.
def -(that: Nat) = if (that.isZero) this else throw new Error("negative number")
Однако его трудно отлаживать. Какие-нибудь советы?
Один код может многого добиться в Scala.
def -(that: Nat) = if (that.isZero) this else throw new Error("negative number")
Однако его трудно отлаживать. Какие-нибудь советы?
Используйте рабочий лист Scala. Вот и все: вы получаете многострочный REPL с вашей средой, в которой вы можете играть со своим кодом.
В качестве альтернативы просто используйте REPL в комплекте с sbt (sbt console
) с правильным импортом
вы можете увидеть вывод фаз компиляции, то есть AST после дешугаринга с помощью
scalac -Xprint:типер
scalac -Xprint-types (обратите внимание на дефис, а не на двоеточие)
Страница руководства немного сбивает с толку, в ней нет фазы ввода, но она работает:
http://www.scala-lang.org/docu/files/tools/scalac.html
Трассировка типа времени компиляции