<div>Yes.And I finally make the function error-free.Thanks</div><div><div><br></div><div style="font-size: 12px;font-family: Arial Narrow;padding:2px 0 2px 0;">------------------ 原始邮件 ------------------</div><div style="font-size: 12px;background:#efefef;padding:8px;"><div><b>发件人:</b> "Joel Neely"<joel.neely@gmail.com>;</div><div><b>发送时间:</b> 2018年4月4日(星期三) 晚上7:19</div><div><b>收件人:</b> "The Haskell-Beginners Mailing List - Discussion of primarilybeginner-level topics related to Haskell"<beginners@haskell.org>;<wbr></div><div></div><div><b>主题:</b> Re: [Haskell-beginners] I have a question in designing a 'show'function</div></div><div><br></div><div dir="ltr"><div class="gmail_default" style="font-family:georgia,serif;font-size:small">You only have a single plus sign before the second invocation of show:</div><div class="gmail_default" style="font-family:georgia,serif;font-size:small"><br></div><div class="gmail_default" style="font-family:georgia,serif;font-size:small"><pre style=" white-space:pre-wrap;color:rgb(51,51,51);font-size:13px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial;padding:9.5px; ; ; ; ; ; ; ; ;  ">++ " " + show(pi * x * x) ++ "cm^2"</pre>Don't you mean concatenation?</div><div class="gmail_default" style="font-family:georgia,serif;font-size:small"><br></div><div class="gmail_default" style="font-family:georgia,serif;font-size:small"><pre style=" white-space:pre-wrap;color:rgb(51,51,51);font-size:13px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial;padding:9.5px; ; ; ; ; ; ; ; ;  ">++ " " ++ show(pi * x * x) ++ "cm^2"</pre><br></div><div class="gmail_default" style="font-family:georgia,serif;font-size:small">Good luck,</div><div class="gmail_default" style="font-family:georgia,serif;font-size:small">-jn-</div><div class="gmail_default" style="font-family:georgia,serif;font-size:small"><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Apr 4, 2018 at 1:37 AM, 清羽 <span dir="ltr"><<a href="mailto:1625143974@qq.com" target="_blank">1625143974@qq.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br><span style=""></span><div class="m_6897951926248639574post_region_text" id="m_6897951926248639574questionText" style=""><p style="margin:0px 0px 2px;word-break:break-word;min-height:15px">here is the question:</p><p style="margin:0px 0px 2px;word-break:break-word;min-height:15px">Write a function <code style="">showAreaOfCircle</code> <wbr>which, given the radius of a circle, calculates the area of the circle,</p><blockquote style="padding:0px 0px 0px 15px;margin:0px 0px 20px;border-left-width:5px;border-left-style:solid;border-left-color:rgb(238,238,238)"><pre style=""><code>showAreaOfCircle 12.3</code>  ⇒ <code>"The area of a circle with radius 12.3cm is about 475.2915525615999 cm^2"</code></pre></blockquote><p style="margin:0px 0px 2px;word-break:break-word;min-height:15px">my solution is:</p><pre style="">showAreaOfCircle :: Show a => a -> String
showAreaOfCircle x = "The area of a circle with radius" ++ show x ++ "is about" ++ " " + show(pi * x * x) ++ "cm^2"</pre><p style="margin:0px 0px 2px;word-break:break-word;min-height:15px">but there is an error</p><p style="margin:0px 0px 2px;word-break:break-word;min-height:15px">• Could not deduce (Num a) arising from a use of ‘*’<br>from the context: Show a<br>bound by the type signature for:<br>showAreaOfCircle :: forall a. Show a => a -> String<br>at FirstStep.hs:20:1-41<br>Possible fix:<br>add (Num a) to the context of <br>the type signature for:<br>showAreaOfCircle :: forall a. Show a => a -> String<br>• In the first argument of ‘show’, namely ‘(pi * x * x)’<br>In the second argument of ‘(+)’, namely ‘show (pi * x * x)’<br>In the second argument of ‘(++)’, namely ‘" " + show (pi * x * x)’</p><p style="margin:0px 0px 2px;word-break:break-word;min-height:15px">I had tried to change the type declaration to </p><pre style="">Show a => Num a => a -> String</pre><p style="margin:0px 0px 2px;word-break:break-word;min-height:15px">i guess there must be a problem with pi.</p><p style="margin:0px 0px 2px;word-break:break-word;min-height:15px">Can someone help me with the error message? Great thanks</p></div><br>______________________________<wbr>_________________<br>
Beginners mailing list<br>
<a href="mailto:Beginners@haskell.org">Beginners@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-<wbr>bin/mailman/listinfo/beginners</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">Beauty of style and harmony and grace and good rhythm depend on simplicity. - Plato</div>
</div></div>