[1..5]
給出了這樣的
[1,2,3,4,5]
,也可以用範圍函數來完成。是否有可能改變點之間的步長,以便我可以得到類似於下面的內容?
[1,1.5,2,2.5,3,3.5,4,4.5,5]
[1..5]
給出了這樣的
[1,2,3,4,5]
,也可以用範圍函數來完成。是否有可能改變點之間的步長,以便我可以得到類似於下面的內容?
[1,1.5,2,2.5,3,3.5,4,4.5,5]
[1,1.5..5]
你必須要小心浮點運算。它不能代表準確1.1,因此,如果您嘗試
Prelude> [0,0.1 .. 1]
[0.0,0.1,0.2,0.30000000000000004,0.4,0.5,0.6,0.7,0.7999999999999999,0.8999999999999999,0.9999999999999999]
最好的辦法是更喜歡:
Prelude> map (/10) [0..10]
[0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0]
其實,[1..5]
是
enumFromTo 1 5
和[1,1.5..5]
爲
enumFromThenTo 1 1.5 5
欲瞭解更多信息,請參閱http://en.wikibooks.org/wiki/Haskell/Syntactic_sugar