我遇到了 F# powerpack 报价评估的问题。
open Microsoft.FSharp.Linq.QuotationEvaluation
let print x = System.Console.WriteLine(sprintf "%A" x)
type record = { x:int; y:int }
let val1 = { x = 1; y = 1; }
let val2 = { x = 1; y = 1; }
let result = val1 = val2
print result
let quote = <@ let value1 = { x = 1; y = 1; }
let value2 = { x = 1; y = 1; }
let result2 = value1 = value2
result2 @>
print (quote.EvalUntyped())
如您所料,第一个结果是正确的。第二个是假的。这是一个错误,还是我错过了什么?