有没有办法如何递归地从另一个lambda返回lambda?
我想做的就是有限状态机,实现为lambda,它返回实现另一个状态(或null)的lambda.
嵌套Func <>将无法正常工作.
C#,.NET 3.5
例:
机器,3个州,伪语言
private Lambda State1()
{
if (SomeConditionIsMet)
return State2;
else
return State1;
}
private Lambda State2()
{
while (SomeConditionIsMet)
return State2;
else
return State3;
}
private Lambda State3()
{
LogEnd();
return NULL;
}
public void FSM()
{
Lambda _currentState = State1;
while(_currentState != NULL)
{
_currentState = _currentState();
}
}
Run Code Online (Sandbox Code Playgroud)
我知道,例如,我可以使用enum + switch解决这个问题,但我只是好奇我是否可以这样做.