<div dir="ltr">You can't use guards in record syntax, but you could use `case` here instead of `let`, or just write a function of type `String -> BuyOrSell` and use that.</div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Sun, Apr 13, 2014 at 11:03 PM, Dimitri DeFigueiredo <span dir="ltr"><<a href="mailto:defigueiredo@ucdavis.edu" target="_blank">defigueiredo@ucdavis.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
I'm having some trouble understanding where I can or cannot use guards inside record syntax. I'm writing a simple conversion routine, but I am not able to write it without inserting an extra let. Do I need a let expression here? Am I missing something?<br>

<br>
--------------<br>
data OldTrade = OldTrade {<br>
    oldprice   :: Double   ,<br>
    oldamount  :: Double   ,<br>
    oldbuysell :: String  -- "buy", "sell" or ""<br>
    } deriving( Eq, Show)<br>
<br>
<br>
data BuyOrSell = Buy | Sell | Unknown deriving(Eq, Show)<br>
<br>
data Trade = Trade {<br>
    price   :: Double   ,<br>
    amount  :: Double   ,<br>
    buysell :: BuyOrSell<br>
    } deriving( Eq, Show)<br>
<br>
convert :: OldTrade -> Trade<br>
<br>
convert ot  = Trade { price   = oldprice  ot,<br>
                      amount  = oldamount ot,<br>
                      buysell = let x | oldbuysell ot == "buy"  = Buy<br>
                                      | oldbuysell ot == "sell" = Sell<br>
                                      | otherwise               = Unknown<br>
                                in x<br>
                    }<br>
<br>
-- how do I eliminate the 'let' expression here?<br>
-- I wanted to write something like:<br>
--<br>
--                      buysell | oldbuysell ot == "buy"  = Buy<br>
--                              | oldbuysell ot == "sell" = Sell<br>
--                              | otherwise               = Unknown<br>
<br>
--------------<br>
<br>
Thanks!<br>
<br>
Dimitri<br>
<br>
<br>
<br>
<br>
______________________________<u></u>_________________<br>
Beginners mailing list<br>
<a href="mailto:Beginners@haskell.org" target="_blank">Beginners@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/beginners" target="_blank">http://www.haskell.org/<u></u>mailman/listinfo/beginners</a><br>
</blockquote></div><br></div>