DIP19: Remove comma operator from D and provision better syntactic support for tuples
bearophile
bearophileHUGS at lycos.com
Wed Sep 26 15:46:18 PDT 2012
> I have appreciated named fields of D tuples since the
> beginning, I have found them quite handy. With them sometimes
> you don't need to unpack a tuple, you can just access its
> fields with a nice name, avoiding to move around more than one
> variable.
In Haskell to solve this problem there is the @ syntax for
tuples. As an example usage, this Haskell function vNorm
normalizes a Vec (a 2D vector). Its input is a Vec, that is
unpacked in its x and y fields, but vNorm al gives a name to the
whole input Vec, naming it 'v'. So you are able to call the other
function vLen with no need to pack again x and y in a Vec:
vLen :: Vec -> Double
vLen x = sqrt $ vDot x x
vNorm :: Vec -> Vec
vNorm v@(Vec x y) = Vec (x / l) (y / l) where l = vLen v
(In my first post in this thread I have not listed such extra
features for tuples because I think they are less important than
a good unpacking syntax in those four cases.)
Bye,
bearophile
More information about the Digitalmars-d
mailing list