Why no circular data in pure FP?

A friend of mine started to read a book about F# after I told him maybe 1000 times how great functional programming is. He is experienced in C# and Java which arguably makes it harder (and definitely more annoying) to learn FP than if you are a beginner.

Clarification: F# is a mixed paradigm language but he chose it as a «gateway drug» and learns it from pure-ish FP perspective.

One of the things that pissed him off was that F# enforces to write code in compilation order (code ordering can be  much more relaxed since F# 4.0 by the way) and hence make it hard to create circular references. Читать далее