Pure and higher-order functions

deadalnix deadalnix at gmail.com
Thu Feb 23 12:12:58 PST 2012


Le 23/02/2012 21:00, mist a écrit :
> Hello!
>
> I have been asked few question recently from a Haskell programmer about
> D2 and, after experimenting a bit, have found that I really can't
> provide a good answe myself, as I am not getting a design limititations
> (if any).
>
> Here is the snippet, it is pretty self-descriptive:
> http://codepad.org/DBdCJYI2
>
> Am i right, that all information about purity & Co is lost at runtime
> and there is no way to write pure-aware higher-order function using
> dynamic function pointers? That would have made me really sad :(

Information is lost because of what f2 accept as a type. f2'q param 
isn't pure, so you gat what you except.

Within f2, the fact that your function is pure is lost. f2 accept any 
function, pure or not.

pure function can be casted automatically to non pure, because it is 
safe, but the other way around, it is impossible (because purity 
constraint would be broken).


More information about the Digitalmars-d-learn mailing list