Ich versuche, eine Funktion zu implementieren, die einen rekursiven Abschluss zurückgibt, obwohl ich nicht sicher bin, wie das in der Funktionssignatur auszudrücken ist. Hier ist ein Beispielcode einer funktionierenden Implementierung in PythonFunktionssignatur zum Zurückgeben eines rekursiven Abschlusses
def counter(state):
def handler(msg):
if msg == 'inc':
print state
return counter(state + 1)
if msg == 'dec':
print state
return counter(state - 1)
return handler
c = counter(1)
for x in range(1000000):
c = c('inc')
und Pseudocode für Rust.
enum Msg {
Inc,
Dec
}
fn counter(state: Int) -> ? {
move |msg| match msg {
Msg::Inc => counter(state + 1),
Msg::Dec => counter(state - 1),
}
}