0
아래의 재귀 함수에 대한 질문이 있습니다.비 결정적 유한 상태 기계를 시뮬레이트하는 재귀 함수
def nfsmaccepts(current, edges, accepting, visited):
# base case
if current in visited:
return None
elif current in accepting:
return ""
else:
newvisited = visited + [current]
# visited.append(current)
for edge in edges:
if current in edge:
letter = edge[1]
for destination in edges[(current, letter)]:
foo = nfsmaccepts(destination, edges, accepting, newvisited)
if foo != None:
return letter + nfsmaccepts(destination, edges, accepting, newvisited)
return None
이 코드는 잘 작동 : 사전
edges = { (1, 'a') : [2, 3],
(2, 'a') : [2],
(3, 'b') : [4, 2],
(4, 'c') : [5] }
하고 받아들이는 상태
accepting = [5]
이 기능은 FSM을 통해 올바른 경로를 찾아 주어. 그러나 원래, 나는 방문한 (두 번째 줄을 보시오)에 전류를 덧붙여서 재귀 적 호출에 그것을 공급했다. 그러나이 경우 구문 오류가 발생합니다. str을 None type 개체와 연결할 수 없습니다.
누군가 설명 할 수 있습니까?
감사합니다.