Hacker News new | ask | show | jobs
by dasvadanya 4237 days ago
So "you really want your data model to be acyclic" means, "you want your programming language to forbid construction of cyclic data structures"? So, for example, connected graphs are not objects you can represent?
2 comments

You can represent them symbolically, of course, as you do for instance in XML.
you can, but they become a special second-class type of reference separate from ownership.
They do - but arguably being forced to define the distinction between direct hierarchical references, and symbolic links, helps constrain your data model and make it more rigorous.

Note that relational databases don't have back pointers either. All references between tables are symbolic. Last century, people tried to make databases that were general pointer graphs (google "network database" or "object database") - broadly speaking, it was a disaster.