[Haskell-beginners] 回复： I have a question in designing a 'show'function
清羽
1625143974 at qq.com
Wed Apr 4 12:14:57 UTC 2018
Yes.And I finally make the function error-free.Thanks
------------------ 原始邮件 ------------------
发件人: "Joel Neely"<joel.neely at gmail.com>;
发送时间: 2018年4月4日(星期三) 晚上7:19
收件人: "The Haskell-Beginners Mailing List - Discussion of primarilybeginner-level topics related to Haskell"<beginners at haskell.org>;
主题: Re: [Haskell-beginners] I have a question in designing a 'show'function
You only have a single plus sign before the second invocation of show:
++ " " + show(pi * x * x) ++ "cm^2"Don't you mean concatenation?
++ " " ++ show(pi * x * x) ++ "cm^2"
Good luck,
-jn-
On Wed, Apr 4, 2018 at 1:37 AM, 清羽 <1625143974 at qq.com> wrote:
here is the question:
Write a function showAreaOfCircle which, given the radius of a circle, calculates the area of the circle,
<code>showAreaOfCircle 12.3</code> ⇒ <code>"The area of a circle with radius 12.3cm is about 475.2915525615999 cm^2"</code>
my solution is:
showAreaOfCircle :: Show a => a -> String showAreaOfCircle x = "The area of a circle with radius" ++ show x ++ "is about" ++ " " + show(pi * x * x) ++ "cm^2"
but there is an error
• Could not deduce (Num a) arising from a use of ‘*’
from the context: Show a
bound by the type signature for:
showAreaOfCircle :: forall a. Show a => a -> String
at FirstStep.hs:20:1-41
Possible fix:
add (Num a) to the context of
the type signature for:
showAreaOfCircle :: forall a. Show a => a -> String
• In the first argument of ‘show’, namely ‘(pi * x * x)’
In the second argument of ‘(+)’, namely ‘show (pi * x * x)’
In the second argument of ‘(++)’, namely ‘" " + show (pi * x * x)’
I had tried to change the type declaration to
Show a => Num a => a -> String
i guess there must be a problem with pi.
Can someone help me with the error message? Great thanks
_______________________________________________
Beginners mailing list
Beginners at haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
--
Beauty of style and harmony and grace and good rhythm depend on simplicity. - Plato
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/beginners/attachments/20180404/16f21435/attachment.html>
More information about the Beginners
mailing list