[Haskell-beginners] Need Help

kaushal Pathak kaushalkp at gmail.com
Sat Apr 11 08:16:47 EDT 2009


Hi There,
   Here is a very simple haskell program I have written to find whether a
number is prime or not, which doesn't give me any compilation error but
gives following run-time error :

Any help would help me move ahead, I know that the type concepts is what I
am lacking, anly pointer to simple/good article/paper would definitely help.

Lots of thannx jut even to look at the mail :-)

Regards
Kaushal

*Run Time Error :*

kaushal > isPrime1 171

<interactive>:1:0:
    Ambiguous type variable `t' in the constraints:
      `Integral t'
        arising from a use of `isPrime1' at <interactive>:1:0-11
      `Floating t'
        arising from a use of `isPrime1' at <interactive>:1:0-11
      `RealFrac t'
        arising from a use of `isPrime1' at <interactive>:1:0-11
    Probable fix: add a type signature that fixes these type variable(s)
kaushal >

*Program :*

isPrime1 x =
    let canDivide num 0 = 0
        canDivide num 1 = 0
        canDivide num divisor = if ((mod num divisor) == 0) then 1
                                else canDivide num (divisor - 1)
    in
        if ( x == 1 )
        then putStrLn("1 is Neither prime nor composite!!!")
        else if ((canDivide x first_div) == 1)
             then putStrLn(show(x) ++ " is not a Prime Number!!!")
             else putStrLn(show(x) ++ " is a Prime Number!!!")
        where
        first_div :: Integral a => a ; first_div = round (sqrt x)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/beginners/attachments/20090411/f855590c/attachment.htm


More information about the Beginners mailing list