Skip to content

Commit b5f0c02

Browse files
committed
Update recursive Fibonacci example and add a Makefile rule to benchmark different languages
1 parent 3d14435 commit b5f0c02

File tree

3 files changed

+14
-29
lines changed

3 files changed

+14
-29
lines changed

Makefile

+7
Original file line numberDiff line numberDiff line change
@@ -216,5 +216,12 @@ rosetta-update:
216216
benchmark:
217217
./benchmark.sh
218218

219+
bench-langs:
220+
hyperfine --warmup 3 \
221+
'chaos dev.kaos' \
222+
'python3 dev.py' \
223+
'ruby dev.rb' \
224+
'php dev.php'
225+
219226
profile:
220227
./profile.sh

tests/rosetta/fibonacci.kaos

+4-15
Original file line numberDiff line numberDiff line change
@@ -3,28 +3,17 @@
33

44
// Recursion
55

6-
num def fibo_error()
7-
print "Incorrect input"
8-
num r = 0
9-
return r
10-
end
11-
126
num def sum(num j)
13-
num x = fibo1(j - 1)
14-
num y = fibo1(j - 2)
7+
num x = fibo(j - 1)
8+
num y = fibo(j - 2)
159
num z = x + y
1610
return z
1711
end
1812

1913
num def fibo1(num n)
20-
num zero = 0
21-
num one = 1
22-
num c = n
2314
end {
24-
n < 0 : fibo_error(),
25-
n == 0 : return zero,
26-
n == 1 : return one,
27-
default : sum(c)
15+
n < 3 : return 1,
16+
default : sum(n)
2817
}
2918

3019
print fibo1(-1) // Incorrect input

tests/rosetta/fibonacci_perf.kaos

+3-14
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,3 @@
1-
num def fibo_error()
2-
print "Incorrect input"
3-
num r = 0
4-
return r
5-
end
6-
71
num def sum(num j)
82
num x = fibo(j - 1)
93
num y = fibo(j - 2)
@@ -12,15 +6,10 @@ num def sum(num j)
126
end
137

148
num def fibo(num n)
15-
num zero = 0
16-
num one = 1
17-
num c = n
189
end {
19-
n < 0 : fibo_error(),
20-
n == 0 : return zero,
21-
n == 1 : return one,
22-
default : sum(c)
10+
n < 3 : return 1,
11+
default : sum(n)
2312
}
2413

2514

26-
print fibo(28)
15+
print fibo(40)

0 commit comments

Comments
 (0)