enumFromThenTo
開始値、次の値、終了値を取り、その範囲とステップに従ってリストを生成
[x1,x2,..y]の糖衣構文
定義
code:hs
enumFromThenTo :: a -> a -> a -> a code:hs
-- 増加する場合は以下と同じ
enumFromThenTo x y z = takeWhile (<= z) $ iterate (+(y-x)) x
例
code:hs
code:hs
-- >>> f 3 20
[~~ limit-1]だけ見ると、最後の要素が常にlimit-1になるように見えるが、そうではない
上記の例だと20-1=19が最後のようになりそうだが、実際は18
limit-1はtakeWhileの評価に使われるだけなので、常に最後の要素になるわけではない