Re: Course-of-value recursion by defining a sequence as a self-referential infinite list
Pranshu Sharma via Haskell-Cafe <[email protected]>
| Newsgroups | gmane.comp.lang.haskell.cafe |
|---|---|
| Message-ID | <[email protected]> |
Vanessa McHale <[email protected]> writes: > I came up with a one-liner for computing coefficients of the generating function for integer > partitions: > > part :: Int → [Integer ] > part n = take n $ product [cycle (1 : replicate n 0) | n ← [0 . . (n − 2)]] > > Karczmarczuk’s solution via the Haskell prelude: > > part = 1 : b 1 > where b n = (1 : b (n + 1)) + (replicate n 0 ++ b n) > This is broken code, no?, just 2 reasons I can spot why: - function 'b n' calls 'b n' unconditionally (infite loop) - What is the reutrn type of 'b'? It seems like it returns list, but the return value is in the form 'a + b' , where (+) is instance of num so I don't think prelude contains any ad-hoc definition of (+) that returns list _______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.