Skip to content

Instantly share code, notes, and snippets.

View moiseev's full-sized avatar
🤷‍♂️

Max Moiseev moiseev

🤷‍♂️
  • San Diego, CA
  • 03:37 (UTC -07:00)
View GitHub Profile
let rec toExpr (par:ParameterExpression) (clause: Clause) =
let constExpr (x:'a) =
Expression.Constant(x, typeof<'a>) |> asExpr
let callExpr (i:Expression) (m:String) (p:Expression) =
Expression.Call(i, m, Array.empty, p)
let arrExpr (xs:'a array) =
Expression.NewArrayInit(typeof<'a>, Array.map (constExpr >> asExpr) xs) |> asExpr
let inExpr (vEx:Expression) (arrEx:Expression) =
Expression.Call(typeof<Enumerable>, "Contains", [|vEx.Type|], arrEx, vEx) |> asExpr