相关疑难解决方法(0)

如何让两种方法相互呼叫?

关于如何让两个方法相互呼叫(即有A()呼叫B()B()呼叫A()),我有点困惑.似乎F#只在代码中遇到它后"看到"该方法,所以如果它没有,它只是说值或构造函数尚未定义.

我错过了一些非常基本的东西吗?

f# mutual-recursion

34
推荐指数
4
解决办法
2718
查看次数

F#转发类型声明

我偶然发现了F#中的这个问题.假设,我想声明两种相互引用的类型:


type firstType = 
     | T1 of secondType
     //................

type secondType =
     | T1 of firstType  
     //................    
Run Code Online (Sandbox Code Playgroud)

我该怎么做,所以编译器不会生成错误?

syntax recursion f# types mutual-recursion

32
推荐指数
1
解决办法
4041
查看次数

何时使用 `let ... in` 来绑定变量?

基于“F#中关键字“in”的含义”的回答

let (x = 2 and y = x + 2) in
    y + x
Run Code Online (Sandbox Code Playgroud)

这不会像

let (x = 2 and y = x + 2)
    y + x
Run Code Online (Sandbox Code Playgroud)

在前一种情况下x,只绑定在in关键字之后。在后一种情况下,正常的变量作用域规则生效,因此变量一经声明就被绑定。

当需要使用 , 指定绑定变量in而不是声明时绑定?

.net f# functional-programming

3
推荐指数
1
解决办法
133
查看次数