
*Should* isInteger be returning True for any numbers generated by this code? If so, can you simplify this test down to that example, so that it's obvious what the test should do, and that it's not doing it (if it in fact is not doing as it should)? In any case, it would help to divide this block of code into more manageable pieces. isInteger should have the type Fractional a => a -> Boolean.
The properFaction part is correct. So I posted the whole code, since "isInteger" should accept any reasonable incoming types. Well, in this one situation, it does not. And I cannot figure out why....
On Tue, Sep 29, 2009 at 3:07 PM, Jimmy Hartzell
wrote: Did you test the properFraction-based code in isolation? If code is broken, it's important to figure out which part of it is broken. Also, this function is not divided into constituent parts, but is a long unruly mess. Dividing it into parts would make it much much more readable, and you would then be able to test the parts individually.
Jimmy
The original code is givenSum num = map (\a ->            let l = (sqrt $ fromIntegral (a * a + 2 + 2 * num)) - (fromIntegral a) in            case properFraction l of             (_, 0) ->              True             _ ->              False           ) $ take num [1..] :t l is (Floating a) => a Well, in ghci *Main> givenSum 10 [False,False,False,False,False,False,False,False,False,False]
On Tue, Sep 29, 2009 at 2:45 PM, Thomas DuBuisson
wrote: On Mon, Sep 28, 2009 at 11:35 PM, Magicloud Magiclouds
wrote: It never matches to (_, 0.0).... I mean case properFraction l of  (_, 0) -> l  _ -> 0 -- always goes here.
Odd, it works fine for me.
f x =     case properFraction x of         (_,0) -> True         _   -> False
*Main> f 5 True *Main> f 5.5 False *Main> f 4.0 True *Main> f 4.00000001 False
Thomas
-- 竹å¯å²å¦¨æµæ°´è¿ å±±é«åªé»éäºé£
-- 竹å¯å²å¦¨æµæ°´è¿ å±±é«åªé»éäºé£