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