2016-12-01 15 views
0

我想在GNU Prolog中編寫一個謂詞來測試一個羅馬數字是否存儲爲字符列表,並且格式正確。即,如果列表包含[i,c],[i,m]或[x,m],則它是無效的。例如,如果我通過[m,i,m],輸出將是no如何測試列表中是否包含Prolog中彼此相鄰的兩個原子?

我該怎麼做呢?我知道成員/ 2的功能;有沒有一種方法可以用來測試列表是否包含子列表?

回答

0

發現一個內置的子列表功能,它正是我需要的:

子列表([I,M],[M,I,M])==>true

-1

考慮使用語法()。並使用

:- set_prolog_flag(double_quotes, chars). 

,它允許你在的地方[m,c,m]"mcm"。有關更多信息,請參閱this answer