what thoughts they want to express, and then they determine how to express those thoughts using the tools provided by their specific language.” - Code Complete 2nd ed (Steve McConnell)
of 'a * 'a tree * 'a tree val size: 'a tree -> int end structure T:> TREE = struct datatype 'a tree = Lf | Node of 'a * 'a tree * 'a tree fun size Lf = 0 | size(Node(_,t1, t2)) = 1 + size t1 + size t2 end
program that deal with how data objects are represented from the parts of a program that deal with how data objects are used is a powerful design methodology called data abstraction." - Structure and Interpretation of Computer Programs pp.80