> Many properties are broken anyway in presence of negative arguments > > drop n . drop m = drop (n+m) -- try n = -1, m = 1 > take n . drop m = drop m . take (n+m) -- try n = 1, m = -1 But following Simon assumption about collapsing integers to naturals, you can have collapse n | n<0 = 0 collapse n = n and then drop n = drop (collapse n) take n = take (collapse n) so drop n . drop m = drop (collapse n) . drop (collapse m) = drop (collapse n + collapse m) take n . drop m = drop m . take (collapse m + n) I thought I was sure about undefined for n<0, but now I'm not so... I cannot refute the foldr argument, and the collapse thing fixes any property you can want. Fidel.
- RE: drop & take [was: fixing typos in Haskel... Brian Boutel
- Re: drop & take [was: fixing typos in H... Craig Dickson
- Re: drop & take [was: fixing typos ... Craig Dickson
- Re: drop & take [was: fixing typos ... Fergus Henderson
- Re: drop & take [was: fixing typos in Haskel... Tom Pledger
- RE: drop & take [was: fixing typos in Haskel... Brian Boutel
- Re: drop & take [was: fixing typos in H... Fergus Henderson
- Re: drop & take [was: fixing typos in Haskel... Marcin 'Qrczak' Kowalczyk
- Re: drop & take [was: fixing typos in Haskel... Marcin 'Qrczak' Kowalczyk
- Re: drop & take [was: fixing typos in Haskel... Marcin 'Qrczak' Kowalczyk
- Specialisation by constraint [was: drop &am... Pablo E. Martinez Lopez
- Specialisation by constraint [was: drop &am... Tom Pledger
- RE: drop & take [was: fixing typos in H... Frank A. Christoph
- Re: drop & take [was: fixing typos in H... Jan Kort
- RE: drop & take [was: fixing typos in Haskel... Brian Boutel
- RE: drop & take [was: fixing typos in H... Frank A. Christoph