Is there a way for a function to return itself in D?
Steven Schveighoffer
schveiguy at yahoo.com
Tue Oct 14 09:01:16 PDT 2008
"Simen Kjaeraas" <simen.kjaras at gmail.com> wrote in message
news:op.ui0ff1np1hx7vj at biotronic.osir.hihm.no...
> Like the subject says, I wonder if it's possible for a function to return
> itself.
> No matter how I think of this, I end up with an endless recursive function
> declaration. Creating a functor that does this is simple, so why not a
> function?
>
Nope. Because the type of the function must include all the functions you
might call.
i.e.
function(int x) function(int x)
is a different type than
function(int x) function(int x) function(int x)
For a functor it's simple. You are not returning a function, but a pointer
to a possibly not fully-defined object, so the type does not need to be
fully specified before it is used.
You would need to be able to declare a function type before defining it in
order to be able to do this.
-Steve
More information about the Digitalmars-d-learn
mailing list