Simply Scala
Implementation of programming language ScalaSimply Scala is browser-based implementation of Scala language. It was written in 2009 by A.J.Bagwell as an easy way to try Scala without having to install it. Server-side part of it is written in Scala, and client UI uses JavaScript.
Simply Scala works as an interactive interpreter: you enter the code in the input box, press “Evaluate” and watch the results of evaluation (output or messages about defined classes, modules etc.).
Links:
Examples:
Hello, World!:
Example for versions Simply ScalaIn Simply Scala you can evaluate expressions without framing them as objects.
println("Hello, World!")
Factorial:
Example for versions Simply ScalaThis examples shows how to define ! as a method applied to Int.
def factorial(n: Int): BigInt =
if (n == 0) 1
else factorial(n - 1) * n
class Factorizer(n: Int) {
def ! = factorial(n)
}
implicit def int2fact(n: Int) = new Factorizer(n);
for {i <- List.range(0, 17)}
println(i + "! = " + (i!))
Fibonacci numbers:
Example for versions Scala 2.7.7-final, Simply ScalaThis example shows the usage of lazy evaluations and infinite lists in Scala. Infinite list of Fibonacci numbers is defined using functions .zip
and .tail
in the same way as in Haskell example.
lazy val fib: Stream[Int] = Stream.cons(1, Stream.cons(1, fib.zip(fib.tail).map(p => p._1 + p._2)))
fib.take(16).print
Quadratic equation:
Example for versions Simply ScalaThis example shows that string processing and Math in Scala are implemented similarly to Java.
def output(real: Double, imag: Double): String =
if (imag == 0) ""+real
else "("+real+","+imag+")"
def solve(A: Int, B: Int, C: Int)
{ if (A == 0) print("Not a quadratic equation.")
else
{ def D = B*B - 4*A*C
if (D == 0) print("x = "+output(-B/2.0/A, 0))
else if (D > 0) print("x1 = "+output((-B+Math.sqrt(D))/2.0/A, 0)+"\nx2 = "+output((-B-Math.sqrt(D))/2.0/A, 0))
else print("x1 = "+output(-B/2/A, Math.sqrt(-D)/2.0/A)+"\nx2 = "+output(-B/2/A, -Math.sqrt(-D)/2.0/A))
}
}
Comments
]]>blog comments powered by Disqus
]]>