Java and Scala, a demonstration in code.
Author |
Message |
wtd
|
Posted: Tue Jan 09, 2007 12:52 am Post subject: Java and Scala, a demonstration in code. |
|
|
A little demonstration of Scala, and what it can do, with regards to recursion.
Also a bit of comparison between Test.java and ScalaTest.scala.
code: | C:\Documents and Settings\Chris\My Documents\scala>type mymath\Factorial.scala
package mymath
import java.math.BigInteger
import BigInteger.ONE
object Factorial {
def apply(n: Int): BigInteger = {
def aux(n: BigInteger, acc: BigInteger): BigInteger = {
val comparison = n compareTo ONE
if (comparison == -1 || comparison == 0) acc
else aux(n subtract ONE, acc multiply n)
}
aux(new BigInteger(n toString), ONE)
}
}
C:\Documents and Settings\Chris\My Documents\scala>type Test.java
import mymath.Factorial;
public class Test {
public static void main(String[] args) {
System.out.println(Factorial.apply(400));
}
}
C:\Documents and Settings\Chris\My Documents\scala>scalac -classpath . mymath\Factorial.scala
C:\Documents and Settings\Chris\My Documents\scala>javac -classpath . Test.java
C:\Documents and Settings\Chris\My Documents\scala>scala -classpath . Test
640345228466238952623479703195030058507025830260029594586844459428023971691868314362784786474632646762943505750358568108
482981628835174352289619886468029979373416541508381624264619423523070462443250151144486708906627739149181173319559964407
095496713452904770203224349112107975932807951015453726672516278778900093497637657103263503315339653498683868313393520243
737881577867915063118587026182701698197400629830253085912983461622723045583395207596115053022360868104332972551948526744
322324386699484224042325998055516106359423769613992319171340638589965379701478272066063202173794720103213566246138090779
423045973606995675958360961587151299138222865785795493616176544804532220078258184008484364155912294542753848035583745180
226759000613995601455952061272111929181050324910080000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000
C:\Documents and Settings\Chris\My Documents\scala>type ScalaTest.scala
import mymath.Factorial
object ScalaTest extends Application {
Console println Factorial(400)
}
C:\Documents and Settings\Chris\My Documents\scala>scalac -classpath . ScalaTest.scala
C:\Documents and Settings\Chris\My Documents\scala>scala -classpath . ScalaTest
640345228466238952623479703195030058507025830260029594586844459428023971691868314362784786474632646762943505750358568108
482981628835174352289619886468029979373416541508381624264619423523070462443250151144486708906627739149181173319559964407
095496713452904770203224349112107975932807951015453726672516278778900093497637657103263503315339653498683868313393520243
737881577867915063118587026182701698197400629830253085912983461622723045583395207596115053022360868104332972551948526744
322324386699484224042325998055516106359423769613992319171340638589965379701478272066063202173794720103213566246138090779
423045973606995675958360961587151299138222865785795493616176544804532220078258184008484364155912294542753848035583745180
226759000613995601455952061272111929181050324910080000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000
C:\Documents and Settings\Chris\My Documents\scala> |
|
|
|
|
|
|
Sponsor Sponsor
|
|
|
Clayton
|
Posted: Tue Jan 09, 2007 1:01 am Post subject: Re: Java and Scala, a demonstration in code. |
|
|
is Scala an extension of sorts to Java? Either way, i fail to see what you are trying to show us, please enlighten me about what you are trying to show. |
|
|
|
|
|
md
|
Posted: Tue Jan 09, 2007 1:12 am Post subject: RE:Java and Scala, a demonstration in code. |
|
|
Scala is another language that runs on the java virtual machine. It's considerably more powerful then Java. |
|
|
|
|
|
wtd
|
Posted: Tue Jan 09, 2007 1:19 am Post subject: RE:Java and Scala, a demonstration in code. |
|
|
In Java, there is no tail-call optimization, so trying to find the factorial of large numbers would result in a stack overflow.
Scala can implement factorial recursively, and it has efficient runtime characteristics. |
|
|
|
|
|
md
|
Posted: Tue Jan 09, 2007 1:21 am Post subject: RE:Java and Scala, a demonstration in code. |
|
|
tail-call optimizations are cool, very very nifty if you do any assembly level stuff as well |
|
|
|
|
|
zylum
|
|
|
|
|
rizzix
|
Posted: Thu Jan 11, 2007 7:27 pm Post subject: RE:Java and Scala, a demonstration in code. |
|
|
yea scala == fun.. i particularly like the pattern matching..
most of my newer projects are in scala.
Scala (java) frontend and a haskell backend.. Its a prefect combo! |
|
|
|
|
|
|
|