я делаю ассоциативный список в прологе Я видел эту тему, но я не понимаю код.
Ассоциативные списки в прологе
Для проверки списка ассоциативно недостаточно сделать это:
lists([_X, _Y]).
lists([[H|_T]|L],[H|T]):- lists(L,T).
Потому что для первого / 1 я проверяю, есть ли элемент таким образом [a, 3] и / 2 беру список списка [[a, 4], [a, 3]] в этом случае.поэтому сначала передайте список вызовов / 2 на [a, 3] и проверьте true для базового случая, а после вызова [a, 4] и вызовите true для базового случая.
Я что-то не так, но не вижу,
Кто-нибудь может мне помочь?
Обновление OP от 2019-01-01 10: 40: 47Z:
Я пытаюсь разрешить таким образом:
islist([_X,_Y]).
islist([_X|T]):- islist(T).
В этом случае принимайте только ввод таким образом
[[k,v],[k,v],[k,v]]
, но принимайте все вводные данные следующим образом:
- [a]
- [k, v, v, v]
- [[k, v], [k, v], [k, v,v]]
Так что моя проблема остается.