<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;">Thanks, Ivan.<br><br>I may be back later, after I read<br><br>http://en.wikibooks.org/wiki/Haskell/Laziness<br><br>Michael<br><br>--- On <b>Sat, 7/31/10, Ivan Lazar Miljenovic <i><ivan.miljenovic@gmail.com></i></b> wrote:<br><blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;"><br>From: Ivan Lazar Miljenovic <ivan.miljenovic@gmail.com><br>Subject: Re: [Haskell-cafe] Constructor question<br>To: "michael rice" <nowgate@yahoo.com><br>Cc: haskell-cafe@haskell.org<br>Date: Saturday, July 31, 2010, 9:32 AM<br><br><div class="plainMail">michael rice <<a ymailto="mailto:nowgate@yahoo.com" href="/mc/compose?to=nowgate@yahoo.com">nowgate@yahoo.com</a>> writes:<br><br>> From: Data.Complex<br>><br>> data (RealFloat a) => Complex a<br>> = !a :+ !a<br>><br>> What's the
purpose of the exclamation marks?<br><br>Forcing; it means that the values are evaluated (up to WHNF) before the<br>Complex value is constructed:<br><br><a href="http://www.haskell.org/ghc/docs/6.12.1/html/users_guide/bang-patterns.html" target="_blank">http://www.haskell.org/ghc/docs/6.12.1/html/users_guide/bang-patterns.html</a><br><br>-- <br>Ivan Lazar Miljenovic<br><a ymailto="mailto:Ivan.Miljenovic@gmail.com" href="/mc/compose?to=Ivan.Miljenovic@gmail.com">Ivan.Miljenovic@gmail.com</a><br>IvanMiljenovic.wordpress.com<br></div></blockquote></td></tr></table><br>