有什麼辦法如何從另一個lambda遞歸返回lambda?Lambda返回另一個lambda
所有我想要做的是有限狀態機,實現爲lambda,它返回實現另一個狀態(或null)的lambda。
嵌套功能<>將無法正常工作。
C#,.NET 3.5
實施例:
機,3個狀態,pseudolanguage
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();
}
}
我知道,我可以解決此使用枚舉+開關,例如,但我我只是好奇,如果我能做到這一點。
我被這個問題的「遞歸」屬性所困惑;你能舉出這種行爲的例子嗎? lambda實際上是否應該返回*本身*? – Aaronaught 2010-05-15 14:24:58
目前尚不清楚您希望如何工作。你可以給一個僞代碼的例子,或一個詳細的解釋? – Joren 2010-05-15 14:27:10
我很困惑的更新。這段代碼中沒有任何lambda表達式。 「lambda」是什麼意思?我的意思是*一個lambda表達式*。 – 2010-05-15 15:03:10