FSharp 内嵌 API 添加变量
FSharp embedded API add variables
使用 Fsharp.Compiler.Serice Interactive API 我想为我的 FsiEvaluationSession 对象设置变量。这可能吗?或者是否有另一种方法可以将 f# 嵌入到应用程序中以用于嵌入式脚本?
我认为没有直接的方法可以做到这一点,但有一个很好的解决方法:
// Define a mutable variable with default value
fsiSession.EvalInteraction "let mutable myVar = Unchecked.defaultof<int>"
// Create a function that sets the value of the variable
let f = evalExpressionTyped<int -> unit> "fun x -> myVar <- x"
// Run the function to set the value of `myVar` to whatever we want
f 42
// As a bonus, use variable shadowing to make it immutable
fsiSession.EvalInteraction "let myVar = myVar"
这使用了 FCS 文档中的 evalExpressionTyped
助手。
使用 Fsharp.Compiler.Serice Interactive API 我想为我的 FsiEvaluationSession 对象设置变量。这可能吗?或者是否有另一种方法可以将 f# 嵌入到应用程序中以用于嵌入式脚本?
我认为没有直接的方法可以做到这一点,但有一个很好的解决方法:
// Define a mutable variable with default value
fsiSession.EvalInteraction "let mutable myVar = Unchecked.defaultof<int>"
// Create a function that sets the value of the variable
let f = evalExpressionTyped<int -> unit> "fun x -> myVar <- x"
// Run the function to set the value of `myVar` to whatever we want
f 42
// As a bonus, use variable shadowing to make it immutable
fsiSession.EvalInteraction "let myVar = myVar"
这使用了 FCS 文档中的 evalExpressionTyped
助手。