浮動迭代器列表解析請看下面的代碼:在F#
let dl = 9.5/11.
let min = 21.5 + dl
let max = 40.5 - dl
let a = [ for z in min .. dl .. max -> z ] // should have 21 elements
let b = a.Length
「一」應該有21個元素,但也只拿到了20元。 「max-dl」值缺失。我知道浮點數不是精確的,但我希望F#可以用它來工作。如果不是,那麼爲什麼F#支持使用float迭代器的List comprehensions?對我而言,這是一個錯誤的來源。
在線試用:http://tryfs.net/snippets/snippet-3H
「對我來說,這是一個錯誤的來源。」 浮游物是錯誤的來源。當你使用浮點值時,無論你的語言是什麼,都需要注意。列表理解只不過是一系列的增加和比較。 – Laurent 2011-03-25 11:50:39
同意。我不認爲允許使用浮動列表理解是一個好主意。我相信這將需要特殊處理來禁用它,這就是爲什麼它被允許。 – 2011-03-25 13:37:42
我發現舊電子郵件在2008年10月我們決定削減此功能,贊成linspace運營商。但隨後時間/優先次序/分類方式開始啓用,並且此功能從未被移除/替換。好吧。 – Brian 2011-03-25 23:26:07