Tôi đang cố thực hiện một hàm trả về kết thúc đệ quy. Mặc dù tôi không chắc chắn cách thể hiện điều đó trong chữ ký hàm. Dưới đây là mã ví dụ về triển khai hoạt động trong PythonChữ ký chức năng để trả lại một kết thúc đệ quy
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')
và mã giả cho Rust.
enum Msg {
Inc,
Dec
}
fn counter(state: Int) -> ? {
move |msg| match msg {
Msg::Inc => counter(state + 1),
Msg::Dec => counter(state - 1),
}
}