> I see no reason what you just gave isnt isomorphic to
> sum(1,2,sum(3,4))
> Which is not "code as data"
Says who? In Prolog it would be. Whether or not some syntax is a data structure literal depends entirely on the syntax of your language. Your example is isomorphic if you make the corresponding change to your language's data structure literals.