Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
elefevre committed Mar 5, 2012
0 parents commit 811a771
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 0 deletions.
29 changes: 29 additions & 0 deletions basic.ik
@@ -0,0 +1,29 @@
;; appel de la méthode println sur un objet de type Text
"Hello" println

;; 2 appels sur la même ligne
"hello" println. "world" println.

;; création d'une méthode
foo = method("Hello" println)
foo()

;; une méthode est un objet de type "DefaultMethod"
method() kind println

;; calcul du factoriel du nombre 10
fact = method(n, if((0..1) include?(n), 1, n * fact(n-1)))
fact(10) println

;; création d'un nouveau type
Foo = Origin mimic
Foo kind println

;; création d'une instance
foo = Foo mimic
foo kind println

;; obtenir des singletons en surchargeant la méthode de sous-typage
Foo = Origin mimic
Foo mimic = Foo
if(Foo == Foo mimic, "Foo is a singleton", "Foo is a normal type") println
6 changes: 6 additions & 0 deletions fibonacci.ik
@@ -0,0 +1,6 @@
;; Fibonacci de 1 à 15
fibonacci = method(number,
if((0..1) include?(number), 1, fibonacci(number - 1) + fibonacci(number - 2))
)

(1..15) map(n, fibonacci(n)) join("\n") println
9 changes: 9 additions & 0 deletions fizzbuzz.ik
@@ -0,0 +1,9 @@
;; FizzBuzz de 1 à 23

fizzBuzz = method(number,
result = [3, 5] map(n, if(number % n == 0, {3 => "Fizz", 5 => "Buzz"}[n], "")) join

if(result empty?, number asText, result)
)

(1..23) map(n, fizzBuzz(n)) join("\n") println

0 comments on commit 811a771

Please sign in to comment.