Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
pp:scalalab1 [2022/04/30 09:29]
vbadoiu
pp:scalalab1 [2022/05/07 17:26] (current)
mihai.calitescu fixed typo
Line 5: Line 5:
   * practice writing **tail-recursive** functions as an alternative to imperative **loops** ​   * practice writing **tail-recursive** functions as an alternative to imperative **loops** ​
   * keep your code clean and well-structured.   * keep your code clean and well-structured.
 +
 +** Make sure you have done your [[pp:​scala-environment | scala environment]] setup ready **
  
 ** Create a new Scala worksheet to write your solutions ** ** Create a new Scala worksheet to write your solutions **
Line 122: Line 124:
 </​code>​ </​code>​
  
-===== II. Scala in practice =====+===== III. Scala in practice =====
  
-1.1 Interacting with the filesystem. ​Scala uses Java implementations for using most of the operating system'​s functionalities. In the snippet below, we see the usage of the Java File class.+Objectives:​ 
 +  * See some very simple examples of real world Scala
  
-<code Scala> +**3.1** Interacting with the filesystemScala uses Java implementations for using most of the operating system'​s functionalitiesIn the snippet below, we see the usage of the Java File class.
-def getListOfFiles(dir:​ String):​List[File] = { +
-    val d = new File(dir) +
-    if (d.exists && d.isDirectory) { +
-        d.listFiles.filter(_.isFile).toList +
-    } else { +
-        List[File]() +
-    } +
-+
-</​code>​+
  
 <code Scala> <code Scala>
-scala> import java.io.File 
 import java.io.File import java.io.File
 +val someFile = new File("​somefile.txt"​)
 +val fileSize = someFile.length
 </​code>​ </​code>​
 +
 +For this exercise we will want to implement a function that receives two files and returns the file with the maximum size.
 +
 +**3.2** Starting from the snippet below which defines a main function (the entry point of a program) in Scala. we want to make a standalone program that prints the size of a file given as an argument.
  
 <code Scala> <code Scala>
-scala> val files getListOfFiles("/tmp") +object Main { 
-files: List[java.io.File] ​List(/​tmp/​foo.log,​ /​tmp/​Files.scala.swp)+  def main(args: Array[String]):​ Unit 
 +    println("Hello, Scala developer!") 
 +    if (args.length ​== 0) { 
 +        println("No parameter :(") 
 +    } else { 
 +        val filename = args(0) 
 +    } 
 + } 
 +}
 </​code>​ </​code>​
-