www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Function pointers/delegates

reply S <S s.com> writes:
real function(real x) y = function real(real x) { return sqrt( 1 - x * x ); };

Is it just me or does it seem odd that real and function are swapped on one
side?
I can kind of see this if it's for single-pass parsing, but isn't there a
better way?

It's not intuitive at all.
Nov 29 2007
next sibling parent reply Johan Granberg <lijat.meREM OVEgmail.com> writes:
S wrote:

 real function(real x) y = function real(real x) { return sqrt( 1 - x * x
 ); };
 
 Is it just me or does it seem odd that real and function are swapped on
 one side? I can kind of see this if it's for single-pass parsing, but
 isn't there a better way?
 
 It's not intuitive at all.

Agreed I always get this wrong and has to correct compiler errors.
Nov 29 2007
parent Jason House <jason.james.house gmail.com> writes:
Johan Granberg wrote:

 S wrote:
 
 real function(real x) y = function real(real x) { return sqrt( 1 - x * x
 ); };
 
 Is it just me or does it seem odd that real and function are swapped on
 one side? I can kind of see this if it's for single-pass parsing, but
 isn't there a better way?
 
 It's not intuitive at all.

Agreed I always get this wrong and has to correct compiler errors.

Same here.
Nov 29 2007
prev sibling parent reply "Craig Black" <cblack ara.com> writes:
"S" <S s.com> wrote in message news:fin4j6$1hks$1 digitalmars.com...
 real function(real x) y = function real(real x) { return sqrt( 1 - x * 
 x ); };

 Is it just me or does it seem odd that real and function are swapped on 
 one side?
 I can kind of see this if it's for single-pass parsing, but isn't there a 
 better way?

 It's not intuitive at all.

I like the way C# 3.0 does anonymous functions. I believe the idea comes from Nemerle. It would be something like: real function(real x) y = real <= (real x) { return sqrt(1 - x*x); };
Nov 29 2007
parent Don Clugston <dac nospam.com.au> writes:
Craig Black wrote:
 "S" <S s.com> wrote in message news:fin4j6$1hks$1 digitalmars.com...
 real function(real x) y = function real(real x) { return sqrt( 1 - x * 
 x ); };

 Is it just me or does it seem odd that real and function are swapped on 
 one side?
 I can kind of see this if it's for single-pass parsing, but isn't there a 
 better way?

 It's not intuitive at all.

I like the way C# 3.0 does anonymous functions. I believe the idea comes from Nemerle. It would be something like: real function(real x) y = real <= (real x) { return sqrt(1 - x*x); };

I like the way D does anonymous delegates. <g> real delegate(real x) y = (real x) { return 1 - x * x; };
Nov 29 2007