[Haskell-beginners] Use a list as data for a data type?
Brent Yorgey
byorgey at seas.upenn.edu
Fri Feb 22 21:14:33 CET 2013
On Fri, Feb 22, 2013 at 02:07:43PM -0500, Brent Yorgey wrote:
> On Fri, Feb 22, 2013 at 10:43:32AM -0800, Bryce Verdier wrote:
> > Lets say I have a data type like so:
> >
> > data IpAddress = IpAddress {$
> > o1 :: !Int,$
> > o2 :: !Int,$
> > o3 :: !Int,$
> > o4 :: !Int$
> > } deriving (Show)$
> >
> > which you can create by doing:
> > IpAddress 192 168 1 1
> >
> > Is there a way to do the same thing with the input data in a list? Like:
> > IpAddress [192,168,1,1]
> >
> > or using some operator (or combination of operators):Like (I'm
> > guessing (<????>) isn't in use):
> > IpAddress <????> [192,168,1,1]
>
> No, there isn't. But you can make a function
>
> ipAddress :: [Int] -> IpAddress
> ipAddress [a,b,c,d] = IpAddress a b c d
For that matter you can define the operator (<????>) yourself:
(<????>) :: (a -> a -> a -> a -> b) -> [a] -> b
f <????> [a,b,c,d] = f a b c d
Not sure how useful it is though.
-Brent
More information about the Beginners
mailing list