如何将标签链接到F#中的可变变量?

che*_*Out 0 f# mutable

我想在F#中创建一个标签,它使用一个可变变量来返回一个值.不幸的是,F#将此标签设置为常量值.如果mutable的值发生更改,则标签的值仍然存在.是不是有点不一致?有没有办法让标签("a")依赖于mutable("x")?

let mutable x = 0;

let a = x + 2; // I want not to set a to a constant value
let b two = x + two;

x <- 1;

let c = b 2;

let isConsistent = a = c;


val mutable x : int = 1
val a : int = 2
val b : two:int -> int
val c : int = 3
val isConsistent : bool = false
Run Code Online (Sandbox Code Playgroud)

Seh*_*cht 5

从你自己的评论中你想a成为一个函数返回x + 2
直接翻译是:

let mutable x = 0

let a () = x + 2
let b two = x + two

x <- 1

let c = b 2

let isConsistent = a () = c // don't forget to call the function 'a'

(*
val mutable x : int = 1
val a : unit -> int
val b : two:int -> int
val c : int = 3
val isConsistent : bool = true
*)
Run Code Online (Sandbox Code Playgroud)