OOP looks nasty because multimethods get lost when there are many of them. Also I don't understand why TStream uses procvar fields rather than multimethods.
Could anyone explain the idea?
Also as far as I understand TTable is expensive to assign, e.g.
var t = toTable([("abc", "val1"), ("bbb", "val2")]) var t2 = t # is expensive
So which is the way to declare a reference to it?
Ok, the first item seems confusing to me because I've got used to java/c++ style of declaring methods, so probably it's a matter of a habbit.
Thanks for explaining the rest, i'll keep learning by experimenting further because the language is very interesting and many ideas are close to what I want (I'm looking for a good alternative to C++/Java).
Ok, the first item seems confusing to me because I've got used to java/c++ style of declaring methods, so probably it's a matter of a habbit.
Actually Nimrod isn't the first language to implement methods this way. Oberon, Component Pascal, Object Pascal (via class helper), Fortran (since it supports OOP, 2003 version if I'm not mistaken), Lua, JavaScript and all other prototype based OOP languages does it similarly (well... more or less).