간단히 대답하면, 순전히 기능적인 언어로 이름을 볼 때 간단한 정의를 통해 관련 값이 무엇인지 알 수 있습니다. 변경 가능한 변수가있는 경우 마지막으로 실행 된 여러 할당 중 하나만 알 수 있으므로 제어 흐름도 분석해야합니다. 이는 제어 조건을 조건부로 설정하여 여러 가능성을 갖게합니다. 지수 폭발을 얻으려면 과제의 RHS 자체가 변수에 의존한다는 것을 고려해야하므로 재귀 적으로 변수를 분석해야합니다.
위의 분석에서 결론은 의도, 불변 및 의미를 설명하는 주석 없이는 불가능하다는 것입니다. 해석하기 어려울 수 있으며 의미가 실제 코드에서 준수되는지 확인하기가 어려울 수 있습니다.
이 답변은 기본적으로 @ Javier 's point 1의 확장입니다.
또한 사기성 OO 체제의 인기에 대한 설명이라고 생각합니다. OO를 사용하면 가변 상태가 캡슐화되어 돌연변이를 어느 정도 지역화하고 의미론을 훨씬 더 강력하게 표현하고 확인할 수 있으므로 분석이 훨씬 쉬워집니다.
함수형 프로그래밍은 답이 아닙니다. 정답은 유도 (기능) 및 공동 (프로 시저) 프로그래밍을 모두 지원하는 시스템이므로 올바른 도구는 상태 비 저장 및 상태 저장 프로그래밍을 모두 처리 할 수 있습니다. 국가 관리 이론은 아직 초기 단계 인 반면 건설적인 (기능적) 이론은 잘 확립되어 있습니다.