[Issue 7646] New: bug in code sample and unittest

d-bugmail at puremagic.com d-bugmail at puremagic.com
Sun Mar 4 11:59:53 PST 2012


http://d.puremagic.com/issues/show_bug.cgi?id=7646

           Summary: bug in code sample and unittest
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: trivial
          Priority: P2
         Component: websites
        AssignedTo: nobody at puremagic.com
        ReportedBy: josvanuden at gmail.com


--- Comment #0 from josvanuden at gmail.com 2012-03-04 11:59:48 PST ---
The following sample code on std.functional contains a bug.
http://dlang.org/phobos/std_functional.html#memoize

    ulong fib(ulong n) { 
        alias memoize!fib mfib; 
        return n < 2 ? 1 : mfib(n - 2) + mfib(n - 1); 
    } 

    assert(fib(10) == 89);

fib(10) should be 55. 
http://en.wikipedia.org/wiki/Fibonacci_number#List_of_Fibonacci_numbers

I think the code should be (n <= 2):

    ulong fib(ulong n) { 
        alias memoize!fib mfib; 
        return n <= 2 ? 1 : mfib(n - 2) + mfib(n - 1); 
    }

    assert(fib(10) == 55); 

It's also in the unittest
https://github.com/D-Programming-Language/phobos/blob/master/std/functional.d

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list