"Lioneldraghi" wrote in message news:vk53gs$3lfp0$2@dont-email.me... > Le 06/09/2024 à 02:03, Randy Brukardt a écrit : > >> (10) Variable-returning functions are introduced. They're pretty similar >> the >> semantics of anonymous access returns (or the aliased function returns >> suggested by Tucker). This means that a variable can easily be treated as >> a >> function (and indeed, a variable declaration is just syntactic sugar for >> such a function). > > I suppose that to allows the compiler to discriminate this non sense code > > Square (2) := 3; > > from the legitimate > > List.Index (3) := Item; > > you will have to introduce some specific syntax, like Tucker's "aliased > function". > > I see the huge benefit from a user point of view, but I'm not aware of > compiler internals : doesn't the introduction of a second function type > increase complexity? Yes, but Ada already has a bunch of different mechanisms for dealing with objects/functions/exceptions/packages/types. My intent is to collapse those all into one (somewhat more complex) mechanism. The basic idea is that everything resolves a single way, meaning that everything can be overloaded, and there no longer is a semantic difference between: A : constant T := ...; and function A return T is (...); Whether that really helps remains to be seen, of course. But the goal is to reduce the number of disjoint mechanisms both in the language description and in the implementation. The hope is then to be able to introduce additional capabilities on top of a simpler and stronger foundation. Randy.