Adding Scala examples for Chapter 4 and Chapter 5 (#30)

* Add files via upload

* Update 01_countdown.scala

* Update 02_greet.scala

* Update 02_greet.scala

* Create scala

* Delete scala

* Add files via upload

* Add files via upload
This commit is contained in:
chase-g
2017-09-26 13:40:43 -04:00
committed by Aditya Bhargava
parent d76298722f
commit 7d6d36ccb2
7 changed files with 57 additions and 0 deletions

View File

@@ -0,0 +1,6 @@
def sum(arr: List[Int]): Int = {
var total: Int = 0
for(x <- arr) total += x
total
}
println(sum(List(1,2,3,4)))

View File

@@ -0,0 +1,4 @@
def sum(list: List[Int]): Int = {
if(list.isEmpty) return 0
else return list(0) + sum(list.drop(1))
}

View File

@@ -0,0 +1,4 @@
def count(list: List[Int]): Int = {
if(list.isEmpty) return 0
return 1 + count(list.drop(1))
}

View File

@@ -0,0 +1,9 @@
def max(list: List[Int]): Int = {
if(list.length == 2){
if(list(0) > list(1)) return list(0)
else return list(1)
}
val sub_max = max(list.drop(1))
if(list(0) > sub_max) list(0)
else sub_max
}

View File

@@ -0,0 +1,16 @@
def quicksort(array: Array[Int]): Array[Int] = {
if(array.length < 2){
//base case, arrays with 0 or 1 element are already "sorted"
return array
}
else {
//recursive case
val pivot: Int = array(0)
//sub-array of all the elements less than the pivot
val less: Array[Int] = array.drop(1).filter(x => x < pivot)
//sub-array of all the elements greater than the pivot
val greater: Array[Int] = array.drop(1).filter(x => x > pivot)
return (quicksort(less) :+ pivot) ++ quicksort(greater)
}
}
quicksort(Array(10,5,2,3))