Кто-нибудь знает, почему sub
генерирует исключение, если add
нет? И это ошибка?
open Microsoft.FSharp.Linq.QuotationEvaluation
let inline add x = x + x
let inline sub x = x - x
let answer = <@ add 1 @>.Eval() // 2, as expected
let answer2 = <@ sub 1 @>.Eval() // NotSupportedException
Примечание. Без ключевого слова inline исключение не выбрасывается (но код не является общим) Кроме того, исключение вызывается только при использовании котировок. Нормальная оценка работает нормально.
Спасибо
Изменить: упрощенный пример кода