[Haskell-beginners] Add parenthesis to Sin/Cos expressions

goforgit . teztingit at gmail.com
Fri Nov 6 20:43:02 UTC 2015


Thanlks!

On Thu, Nov 5, 2015 at 6:16 PM, Sumit Sahrawat, Maths & Computing, IIT
(BHU) <sumit.sahrawat.apm13 at iitbhu.ac.in> wrote:

> The spirit of declarative programming lies in the fact that you try to
> just tell the compiler what something means. Instead of thinking about
> keeping track of the numbers of parentheses, and then applying them
> afterwards, I would suggest you create a function to do the same job:
>
>     bracketed :: String -> String
>     bracketed s = "(" ++ s ++ ")"
>
> This would allow you to remove the numeric argument, and also write
> cleaner code.
>
> The second thing that you can improve is the pattern matching. You can use
> isPrefixOf
> <http://hackage.haskell.org/package/base-4.8.1.0/docs/Data-List.html#v:isPrefixOf> to
> check functions, or use a take inside a case statement to get cleaner
> handling of different cases.
>
>     case take 3 str of
>       "sin" -> ...
>       "cos" -> ...
>        _ -> ...
>
> This would also let you debug your code more easily, just as you require.
>
> On 4 November 2015 at 14:51, Imants Cekusins <imantc at gmail.com> wrote:
>
>> > a function that is supposed to add parenthesis to sin/cos expressions.
>> a) Sin 5 + 3        ->    Sin(5) + 3
>> b) Sin Cos (5+3)   ->    Sin (Cos(5+3))
>> c) Sin Cos 5 * 3   ->    Sin(Cos(5)) * 3
>>
>> are you looking for textual representation or actual Haskell code which
>> runs?
>> if actual code, these examples may be re-written like this:
>> a) sin 5 + 3
>> b) sin $ cos $ 5 + 3
>> c) sin (cos 5) * 3
>> _______________________________________________
>> Beginners mailing list
>> Beginners at haskell.org
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>>
>
>
>
> --
> Regards
>
> Sumit Sahrawat
>
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/beginners/attachments/20151106/d46d7c7b/attachment.html>


More information about the Beginners mailing list