Boriss Mejias wrote:
Raphael Collet wrote:
Tomasz Primke wrote:
[...]
For example: from the introduction I learned, that "The full Oz
language can be regarded as syntactic sugar to a small kernel
language.". But there's one problem with that: I have no idea, what
syntactic sugar (kernel language, etc.) is. And I definitely don't
want to learn about it: all I need is the knowledge, that will allow
me to write programs, that will solve my problems. I have written
many programs in Pascal, Object Pascal, C, C++, Java, Prolog, Python
and Bash - without any knowledge about syntactic sugars and kernel
languages. As anyone can see, that knowledge isn't needed for writing
programs.
Here you're wrong. You have used this knowledge without noticing.
Well, actually that is what Tomasz is saying. He hasn't needed the
knowledge to write his programs. He has just learned how to use it...
and that's the whole point of syntactic sugar. If mozart would have only
provide procedures, programmers would complain that they also want to
use functions... ok, you create functions just as syntactic sugar, but
you don't tell that. As David said, that part goes to the reference manual.
Well, I do think this knowledge is fundamental if you care about
understanding why your programs work in the way they do. For instance,
it is hard to explain why Append is tail recursive without translating
it into its kernel version:
fun {Append Xs Ys}
case Xs of nil then Ys
[] X|Xr then X|{Append Xr Ys}
end
end
Luis
_________________________________________________________________________________
mozart-users mailing list
mozart-users@ps.uni-sb.de
http://www.mozart-oz.org/mailman/listinfo/mozart-users