ΑZ
Size: a a a
ΑZ
ΑZ
p
p
ΑZ
всем привет! Я ХХХ, учусь в 11 классе, и вот я запилил на сишных макросах штуку, которая позволяет имет перимущзества продвинутых систем типов в си. Вот quick taste того, как оно выгоялдит:
choice(
Tree,
variant(Empty)
variant(Leaf, int)
variantMany(Node,
field(left, struct Tree *)
field(number, int)
field(right, struct Tree *)
)
);
void print_tree(const Tree *tree) {
match(*tree) {
of(Empty) {
return;
}
of(Leaf, number) {
printf("%d\n", *number);
}
ofMany(Node, (left, number, right)) {
print_tree(*left);
printf("%d\n", *number);
print_tree(*right);
}
}
}
О том, как мне это удалось и сколько волос выпало ниже
</cut>
было бы совсем другое делоp
ΑZ
ΑZ
p
ΑZ
ΑZ
ΑZ
ΑZ
H
H
ΑZ
p
ΑZ
ΑZ