[Haskell-cafe] Autrijus Tang interviewed by Perl.com
Joel Reymont
joelr1 at gmail.com
Thu Sep 15 10:38:46 EDT 2005
What is the meaning of xxs@(x:xs) in the code below?
I understand that x:xs is a list /head:tail/ but a tuple of (x:xs)
does not make sense.
main = print (take 1000 hamming)
hamming = 1 : map (2*) hamming ~~ map (3*) hamming ~~ map (5*)
hamming
where
xxs@(x:xs) ~~ yys@(y:ys) -- To merge two streams:
| x==y = (x : xs~~ys) -- if the heads are common,
take that
| x<y = (x : xs~~yys) -- otherwise, take the smaller one
| x>y = (y : xxs~~ys) -- and proceed to merge the rest
Thanks, Joel
More information about the Haskell-Cafe
mailing list