[clean-list] Lists

Susumu Katayama susumu@research.nj.nec.com
Tue, 21 May 2002 20:07:49 -0400 (EDT)


Here is a definition of working [ 1.0, 1.1 .. 2.0 ], stolen from Haskell98 Report.

module enumFromThenTo
import StdEnv

numericEnumFromThen n m =  iterate (\x -> x +(m-n)) n
numericEnumFromThenTo n n` m = takeWhile p (numericEnumFromThen n n`)
                             where
                               p | n` > n    = \x -> x <= m + (n`-n)/2.0
                                 | otherwise = \x -> x >= m + (n`-n)/2.0
Start = numericEnumFromThenTo 1.0 1.1 2.0
// Start = numericEnumFromThenTo 1.0 1.1 5.0