Это из Expert F # 2.0 стр. 231. Видимо, следующий блок кода
attempt { let! n1 = failIfBig inp1
let! n2 = failIfBig inp2
let sum = n1 + n2
return sum };;
обезвоживания к этому:
attempt.Bind( failIfBig inp1,(fun n1 ->
attempt.Bind(failIfBig inp2,(fun n2 ->
attempt.Return sum)))))
но где sum
вычисляется в варианте без сахара? Я ожидал чего-то большего:
attempt.Bind( failIfBig inp1,(fun n1 ->
attempt.Bind(failIfBig inp2,(fun n2 -> let sum = n1 + n2 in
attempt.Return sum)))))