Skip to content

Instantly share code, notes, and snippets.

View ebrugulec's full-sized avatar
💃

Ebru Gulec ebrugulec

💃
  • Berlin, Germany
View GitHub Profile
def cube(x: Int) : Int = x*x*x
def sumCubes(a:Int, b:Int): Int=
if(a>b) 0
else
cube(a) + sumCubes(a+1, b)
def sum(f: Int => Int, a: Int, b:Int) : Int =
if(a >b) 0
else f(a) + sum(f, a+1, b)
def sumCube(a:Int, b:Int) : Int = def sum(cube, a, b)
def sumFactorials(a:Int, b:Int): Int = def sum(fact, a, b)
def cube(x:Int): Int = x*x*x
def fact(x:Int): Int = if(x == 0) 1 else fact(x – 1)
def sum(f: Int => Int, a:Int, b: Int) = {
def loop(a: Int, acc: Int): Int =
if (a > b) acc
else
loop(a+1, f(a) + acc)
loop(a,0)
}
sum(x => x*x*x, 3,5)
def sum(f: Int => Int) (a: Int, b: Int): Int =
if(a>b) 0
else f(a) + sum(f)(a+1, b)
def product(f: Int => Int)(a: Int, b: Int): Int =
if (a > b) 1
else f(a) * product(f)(a+1, b)
def product(f: Int => Int)(a: Int, b: Int): Int =
if (a > b) 1
else f(a) * product(f)(a+1, b)
def fact(n: Int) = product(x=>x)(1,n)
class Rational(x: Int, y: Int){
def numer = x
def denom = y
}
def addRational(r: Rational, s: Rational): Rational =
new Rational(r.numer * s.denom + s.numer * r.denom,
r.denom * s.denom)