parent
43c291729c
commit
98cf709269
@ -0,0 +1,8 @@
|
||||
# Change divide by 0 to be 0 instead of inf
|
||||
Number div := Number getSlot("/")
|
||||
Number / = method(den,
|
||||
self println
|
||||
if(den == 0, 0, div(den))
|
||||
)
|
||||
x := (5 / 0)
|
||||
x println
|
@ -0,0 +1,13 @@
|
||||
def fib(n)
|
||||
if n <= 0 then 0
|
||||
elsif n == 1 then 1
|
||||
else fib(n-1) + fib(n-2)
|
||||
end
|
||||
end
|
||||
|
||||
puts fib(30)
|
||||
|
||||
# time of fib(30)
|
||||
# real 0m0.166s
|
||||
# user 0m0.148s
|
||||
# sys 0m0.015s
|
@ -0,0 +1,18 @@
|
||||
fib := method(n,
|
||||
if(n <= 0) then(
|
||||
return 0
|
||||
) elseif(n == 1) then(
|
||||
return 1
|
||||
) else (
|
||||
return fib(n-1) + fib(n-2)
|
||||
)
|
||||
)
|
||||
|
||||
fib(30) println
|
||||
|
||||
# time of fib(30)
|
||||
# real 0m5.420s
|
||||
# user 0m5.394s
|
||||
# sys 0m0.020s
|
||||
|
||||
|
@ -0,0 +1,21 @@
|
||||
fibLoop := method(n,
|
||||
prev := 1;
|
||||
result := 0;
|
||||
while(n > 0,
|
||||
n = n - 1;
|
||||
temp := result
|
||||
result = prev + result
|
||||
prev = temp
|
||||
)
|
||||
|
||||
result
|
||||
)
|
||||
|
||||
fibLoop(30) println
|
||||
|
||||
# time of fibLoop(30)
|
||||
# real 0m0.047s
|
||||
# user 0m0.041s
|
||||
# sys 0m0.004s
|
||||
|
||||
|
@ -0,0 +1,24 @@
|
||||
Matrix := Object clone do(
|
||||
store ::= nil
|
||||
get := method(x, y,
|
||||
store at(x) at(y)
|
||||
)
|
||||
|
||||
set := method(x, y, value,
|
||||
store at(x) atPut(y, value)
|
||||
)
|
||||
|
||||
dim := method(x, y,
|
||||
list setSize(x) map(list setSize(y))
|
||||
|
||||
Matrix clone setStore(
|
||||
list setSize(x) map(list setSize(y))
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
m := Matrix dim(10, 7)
|
||||
m set(3,4, 5)
|
||||
m get(3,4) println
|
||||
m get(3,0) println
|
||||
|
@ -0,0 +1,8 @@
|
||||
List myAvg := method(
|
||||
if(isEmpty, 0, (self sum) / (self size))
|
||||
)
|
||||
|
||||
list(0, 100) myAvg println # 50
|
||||
list(100) myAvg println # 100
|
||||
list() myAvg println # 0
|
||||
list(1,2,"three") myAvg println # Error
|
@ -0,0 +1,8 @@
|
||||
# Add all numbers in 2-dimensional array
|
||||
numbers := list(
|
||||
list(0,1,2,3,4),
|
||||
list(5,6,7,8,9),
|
||||
list(10,11,12,13,14)
|
||||
)
|
||||
|
||||
numbers flatten sum println
|
Loading…
Reference in new issue