Add tasks for all the new languages

This commit is contained in:
Tina Müller 2016-12-05 23:44:36 +01:00
parent 9dc3c2bb62
commit bba7bfd280
13208 changed files with 134745 additions and 0 deletions

View file

@ -0,0 +1,31 @@
class BinaryTree<Data>(shared Data data, shared BinaryTree<Data>? left = null, shared BinaryTree<Data>? right = null) {
shared BinaryTree<NewData> myMap<NewData>(NewData f(Data d)) =>
BinaryTree {
data = f(data);
left = left?.myMap(f);
right = right?.myMap(f);
};
}
shared void run() {
value tree1 = BinaryTree {
data = 3;
left = BinaryTree {
data = 4;
};
right = BinaryTree {
data = 5;
left = BinaryTree {
data = 6;
};
};
};
tree1.myMap(print);
print("");
value tree2 = tree1.myMap((x) => x * 333.33);
tree2.myMap(print);
}

View file

@ -0,0 +1,3 @@
type Tree[T] = ref object
value: T
left, right: Tree[T]

View file

@ -0,0 +1,11 @@
class Tree<T> {
var value: T?
var left: Tree<T>?
var right: Tree<T>?
func replaceAll(value: T?) {
self.value = value
left?.replaceAll(value)
right?.replaceAll(value)
}
}

View file

@ -0,0 +1,11 @@
enum Tree<T> {
case Empty
indirect case Node(T, Tree<T>, Tree<T>)
func map<U>(f : T -> U) -> Tree<U> {
switch(self) {
case .Empty : return .Empty
case let .Node(x, l, r): return .Node(f(x), l.map(f), r.map(f))
}
}
}