diff --git a/examples/src/HelloNamesRealistic.kt b/examples/src/HelloNamesRealistic.kt index e69de29bb2d..a144a5e1db5 100644 --- a/examples/src/HelloNamesRealistic.kt +++ b/examples/src/HelloNamesRealistic.kt @@ -0,0 +1,32 @@ +namespace HelloNamesRealistic + +fun main(args : Array) { + val names = args.join(", ") + println("Hello, $names!") +} + +fun println(message : String) { + // System.out is a nullable field + System.out?.println(message) +} + +fun Iterable.join(separator : String) : String? { + val names = StringBuilder() + forit (this) {(it: Iterator): Unit => + names += it.next() + if (it.hasNext()) + names += separator + } + return names.toString() +} + +fun forit(col : Iterable, f : fun(Iterator) : Unit) { + val it = col.iterator() + while (it.hasNext()) { + f(it) + } +} + +fun StringBuilder.plusAssign(s : String) { + this.append(s) +} diff --git a/examples/src/Point.kt b/examples/src/Point.kt index e69de29bb2d..83202ae6054 100644 --- a/examples/src/Point.kt +++ b/examples/src/Point.kt @@ -0,0 +1,17 @@ +class Point(val x: Int, val y: Int) { + fun toString() = "($x,$y)" + + fun distanceTo(other: Point): Double { + val dx = x - other.x + val dy = y - other.y + return Math.sqrt((dx*dx + dy*dy).dbl) + } +} + +fun main(args: Array) { + var p = Point(0, 0) + var q = Point(1, 1) + p.distanceTo(q) + + +} \ No newline at end of file