Skip to content
This repository was archived by the owner on Oct 16, 2024. It is now read-only.

Commit 07da7ae

Browse files
committed
+= lx01
1 parent d3601e4 commit 07da7ae

File tree

4 files changed

+48
-0
lines changed

4 files changed

+48
-0
lines changed

build.sbt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ lazy val common = Seq(
3737
version := "0.1.0"
3838
)
3939

40+
lazy val lx01 = project.settings(common)
41+
4042
val lx02 = "lx02/lx02"
4143
lazy val lx02a = (project in file(lx02 + "a")).settings(common)
4244
lazy val lx02b = (project in file(lx02 + "b")).settings(common)

lx01/src/Makefile

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
all: simple simple.s Simple.class
2+
3+
simple: simple.c
4+
clang -o simple simple.c
5+
6+
simple.s: simple.c
7+
clang -O0 -S simple.c
8+
9+
Simple.class: simple.scala
10+
scalac simple.scala
11+
12+
clean:
13+
rm -f simple simple.s *.class
14+
15+
run-c: simple
16+
./simple
17+
18+
run-s: Simple.class
19+
scala Simple
20+
21+
run-j: Simple.class
22+
java -classpath `brew --prefix`/opt/scala/libexec/lib/scala-library.jar:. Simple

lx01/src/simple.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#include <stdio.h>
2+
3+
int simple(int a, int n) {
4+
for (int i = 1; i <= n; i++) {
5+
a = a + i;
6+
}
7+
return a;
8+
}
9+
10+
int main() {
11+
printf("1 + 2 + ... + 10 = %d\n", simple(0, 10));
12+
}

lx01/src/simple.scala

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
object Simple {
2+
def simple(a: Int, n: Int): Int = {
3+
def aux(a: Int, i: Int): Int = {
4+
if (i > n) a else aux(a + i, i + 1)
5+
}
6+
aux(a, 1);
7+
}
8+
9+
def main(arguments: Array[String]) {
10+
println("1 + 2 + ... + 10 = " + simple(0, 10))
11+
}
12+
}

0 commit comments

Comments
 (0)