2016-12-01 7 views
0

나는 GNU Prolog에 글자 목록으로 저장된 로마 숫자가 잘 형성되어 있는지를 테스트하는 술어를 작성하려고한다. 즉, 목록에 [i, c], [i, m] 또는 [x, m]이 있으면 유효하지 않습니다. 예를 들어 [m, i, m]을 전달하면 출력은 no이됩니다.목록에 Prolog에서 서로 옆에 두 개의 원자가 포함되어 있는지 테스트하려면 어떻게합니까?

어떻게해야합니까? 나는 member/2 함수를 알고있다; 목록에 하위 목록이 포함되어 있는지 테스트 할 수있는 방법이 있습니까?

답변

0

가 내장 된 서브리스트 기능 내가 필요합니까 정확히 발견 :

하위 목록 ([I, m], [m, I, m]) ==>true

-1

는 문법을 사용 고려 (). 그리고 [m,c,m] 대신에 "mcm"를 작성하도록 허용

:- set_prolog_flag(double_quotes, chars). 

를 사용합니다. 자세한 내용은 this answer을 참조하십시오.