F# 在F中使用属性#

F# 在F中使用属性#,f#,module,F#,Module,希望这是连贯的,尽管冗长 我正在尝试在一个.fs文件中创建一个属性,可以从单独的.fs文件中设置该属性,然后在第一个.fs文件的模块中使用该值。。。比如说, 在我的第一个文件function.fs中,我想定义一个属性theta 然后我想在function.fs中定义一个函数Q,以便: 函数Q=Q(r)和。。。 Q(r)依赖于某些依赖于theta, i、 e A1(θ)、A2(θ)、A3(θ) Q以列表的形式返回数据集 我还想在主.fs文件program.fs中维护一组θ值(即 theta=[90

希望这是连贯的,尽管冗长

我正在尝试在一个
.fs
文件中创建一个属性,可以从单独的
.fs
文件中设置该属性,然后在第一个
.fs
文件的模块中使用该值。。。比如说,

在我的第一个文件
function.fs
中,我想定义一个属性
theta

然后我想在
function.fs
中定义一个函数
Q
,以便:

函数Q=Q(r)
和。。。
Q(r)
依赖于某些依赖于
theta

i、 e
A1(θ)、A2(θ)、A3(θ)

Q
以列表的形式返回数据集

我还想在主.fs文件
program.fs
中维护一组θ值(即
theta=[90;120;150;180])

然后我想从
function.fs
为每个
theta
生成一个数据集

我的想法是通过为属性θ设置一个值,运行程序生成一个数据集,为
θ设置一个新值,运行程序生成一个数据集,重复。。。我已经做了大量的研究,但我不清楚的是,我如何在
Q(r)
的代码中回忆起财产的价值

我已成功地在我的
function.fs
文件中设置了一个属性,可以从
program.fs
设置该属性:
function.fs
中,我有:

namespace models.test

type ContactAngle() =
    let mutable m_theta = 90.0
    //read only property
    member this.Empty = 
         m_theta = 90.0
     //read-write property
     //i think i'm onto something with this static...
     member this.Angle
         with get() =
             m_theta
         and set newAmt = 
             m_theta <- newAmt

//module HTModel =
open models.test

let me = new ContactAngle()
printfn "%A" me.Angle
me.Angle <- 120.0
printfn "%A" me.Angle
这允许我重新定义值
theta
。我现在所面临的困难是如何在
function.fs
中的函数中使用新的属性值


我觉得我错过了一些非常基本的东西,需要一些帮助!如有任何见解,将不胜感激

由于函数在被调用时求值,而不是在创建时求值(与中的完全相同,例如,C#),因此您可以在
ContactAngle
中创建一个普通函数,如下所示:

member this.DoSomenthingWithTheta multiplier
    m_theta <- m_theta * multiplier
member this.DoSomenthingWithTheta乘数

m_theta我认为这不是很清楚-你是在问类似于
让我们回忆。。。还有…
但是翻阅文件?我试图理解,但我迷路了。。。如果你重新措辞,让它变得更简单,我很乐意告诉你,似乎有一个基本的误解:为什么要谈论代码的位置?为了使用代码,您需要调用它,而程序并不关心它是在哪个文件中定义的。如果你打电话给它,它不知道它在哪里,它会在编译时吠叫。但在那之后,这是他的工作…感谢所有的反馈。你的评论让我重新思考我想做什么,结果发现答案太复杂了。如果不明显的话,我不是一个开发者,而是一个试图用F#从论文中复制模型的工科学生。我没有重写我的帖子,而是放弃了我的第一次尝试,将它全部放在一个文件中,并通过多个列表使用递归来完成我的任务,而且成功了!谢谢你的帮助和洞察力!