I’ve been reading about functional programming lately, and it occurs to me that XOD has some elements of the functional paradigm built in. In particular a node, when it doesn’t use state, is a pure function. It will always return the same outputs for the same inputs. Nodes can be used inside other nodes, so functional composition is supported, and without any complex syntax to learn and get wrong.
Nodes have referential transparency. I don’t really understand this one, but I think it means you can replace an input with the value it represents and still get the same result. Or something. Wikipedia says referential integrity is the same as pure function. Like I said, not sure about that one.
Immutability is another one. Again, don’t really understand it, but I think a XOD node won’t change it’s input, it will only create a new output. So immutability might be supported too.
XOD doesn’t support recursion. A node cannot contain another copy of itself. Not sure how the functional languages handle that but that’s how they do looping. (or one of the ways anyway).
So, is XOD a functional programming language? It seems to come close.