F# 导入模块失败-未定义模块且未定义值或构造函数
我想使用BasicFunctions.fs文件中模块中的函数。 完成后,下一步就是完成 他回答了这个问题,帮了点忙。这个问题似乎与我的情况无关 尝试1:更改配置以包含第二个文件 如果我将项目配置F# 导入模块失败-未定义模块且未定义值或构造函数,f#,F#,我想使用BasicFunctions.fs文件中模块中的函数。 完成后,下一步就是完成 他回答了这个问题,帮了点忙。这个问题似乎与我的情况无关 尝试1:更改配置以包含第二个文件 如果我将项目配置myFsharpApp.fsproj更改为此 <ItemGroup> <Compile Include="BasicFunctions.fs" /> <Compile Include="Program.fs" /&g
myFsharpApp.fsproj
更改为此
<ItemGroup>
<Compile Include="BasicFunctions.fs" />
<Compile Include="Program.fs" />
</ItemGroup>
使用dotnet build
然后返回
BasicFunctions.fs
导入函数,并希望打印samplefunction1x=x*x+3
代码结构如下所示
// BasicFunctions.fs
module BasicFunctions =
let sampleFunction1 x = x*x + 3
// Program.fs
module main =
open BasicFunctions
// Define a new function to print a name.
let printGreeting name =
printfn "Hello %s from F#!" name
[<EntryPoint>]
let main argv =
printfn "%d" BasicFunctions.sampleFunction1 3 // 12 expected
0 // return an integer exit code
- 顶层模块的定义没有=和缩进
- 没什么
- 空间是一个函数应用程序,所以为了以正确的优先级调用,您需要使用paradensis或pipe
// BasicFunctions.fs
module BasicFunctions
let sampleFunction1 x = x * x + 3
// Program.fs
open BasicFunctions
[<EntryPoint>]
let main argv =
sampleFunction1 3
|> printfn "%d"
0
//BasicFunctions.fs
模块基本功能
让SampleFunction1x=x*x+3
//Program.fs
开放基本函数
[]
让主argv=
样本函数1 3
|>printfn“%d”
0
请注意,您可以跳过“打开”并直接引用模块。这两个文件都需要按顺序包含
<ItemGroup>
<Compile Include="BasicFunctions.fs" />
<Compile Include="Program.fs" />
</ItemGroup>
我仍然会出错-请参阅上面我的附加屏幕,以查看我是否遗漏了任何内容。您的fsproj看起来如何?请参阅上面的更新以验证文件的名称是否正确。编辑中说的是基本功能,而不是基本功能,这是原因。我忽略了文件名是BasicFunctions.fs
而不是BasicFunctions.fs
// BasicFunctions.fs
module BasicFunctions
let sampleFunction1 x = x * x + 3
// Program.fs
open BasicFunctions
[<EntryPoint>]
let main argv =
sampleFunction1 3
|> printfn "%d"
0
<ItemGroup>
<Compile Include="BasicFunctions.fs" />
<Compile Include="Program.fs" />
</ItemGroup>