Рассмотрим следующий код:
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
"a" должен иметь 21 элемент, но имеет только 20 элементов. Значение "max-dl" отсутствует. Я понимаю, что числа с плавающей точкой не являются точными, но я надеялся, что F # сможет с этим справиться. Если нет, то почему F # поддерживает перехват List с помощью итератора float? Для меня это источник ошибок.
Онлайн-пробная версия: http://tryfs.net/snippets/snippet-3H