
19 Oct
2006
19 Oct
'06
4:38 p.m.
On 19/10/06, Brandon Moore
isIdentity xs = xs == takeLengthOf xs [1..] where takeLengthOf xs ys = zipWith const ys xs
You probably mean zipWith (flip const) xs ys.
for finite lists, takeLengthOf xs ys == take (length xs) ys
This ruins the laziness again: Hugs.Base> let takeLengthOf xs ys = take (length xs) ys; isIdentity xs = xs == takeLengthOf xs [1..] in isIdentity (1:3:2:[4..10000]) False (210064 reductions, 278075 cells) Hugs.Base> let takeLengthOf = zipWith (flip const); isIdentity xs = xs == takeLengthOf xs [1..] in isIdentity (1:3:2:[4..1000]) False (60 reductions, 114 cells) -- -David House, dmhouse@gmail.com