Commit d5d9ec1 1 parent 0ab9cc9 commit d5d9ec1 Copy full SHA for d5d9ec1
File tree 4 files changed +41
-10
lines changed
4 files changed +41
-10
lines changed Original file line number Diff line number Diff line change @@ -7,7 +7,7 @@ cd c64/hello
7
7
bash build.sh
8
8
ls -lh
9
9
cd $ROOTPATH
10
- # cd c64/fibonacci
11
- # bash build.sh
12
- # ls -lh
13
- # cd $ROOTPATH
10
+ cd c64/fibonacci
11
+ bash build.sh
12
+ ls -lh
13
+ cd $ROOTPATH
Original file line number Diff line number Diff line change 2
2
3
3
ldmd2 -i \
4
4
-betterC \
5
- -I ../../modules/common \
6
- hello .d \
5
+ -I$PWD / ../../modules \
6
+ src/fib .d \
7
7
-mtriple=mos-unknown-unknown \
8
8
--release \
9
9
-O \
10
+ -L-lprintf_flt \
10
11
-of=fib.prg \
11
12
-gcc=mos-c64-clang \
12
13
-linker=lld
Original file line number Diff line number Diff line change
1
+ import common : printf;
2
+
3
+ T fibonacci (T)(T n)
4
+ {
5
+ static if (is (T == int ))
6
+ {
7
+ T go (T n, T prev, T curr)
8
+ {
9
+ if (n == 0 )
10
+ return prev;
11
+ else
12
+ return go (n - 1 , curr, prev + curr);
13
+ }
14
+
15
+ return go (n, 0 , 1 );
16
+
17
+ }
18
+ else
19
+ {
20
+ static assert (0 , " fibonacci only supports integers" );
21
+ }
22
+ }
23
+
24
+ extern (C )
25
+ void main ()
26
+ {
27
+ auto n = 100 ;
28
+ printf(" Fibonacci number %d is %d\n " , n, fibonacci(n));
29
+ }
Original file line number Diff line number Diff line change 1
- import common: printf;
1
+ import common : printf;
2
2
3
- extern (C )
4
- void main () {
3
+ extern (C )
4
+ void main ()
5
+ {
5
6
printf(" Hello World in D!\n " );
6
- }
7
+ }
You can’t perform that action at this time.
0 commit comments