При использовании вычислительного выражения первое определение работает, но второе не для нуля.
В чем разница между:
member o.Zero() = 3
и этим:
member o.Zero = fun() -> 3
Первое значение равно unit -> int, второе - (unit -> int).В чем разница?
unit -> int
(unit -> int)
Если они ограничены, разницы нет. Однако в определении класса первый o.Zero является методом, а второй o.Zero является свойством.
o.Zero
Вычислительное выражение ожидает метод с именем Zero; вот почему это не сработало, когда вы указали свойство с тем же именем.
Zero