Итак, я создаю этот код, где есть функция, которая получает 2 аргумента и сообщает, если один из них не является списком.Код Prolog дает два разных результата:
Код следующее:
/*** List Check ***/
islist(L) :- L == [], !.
islist(L) :- nonvar(L), aux_list(L).
aux_list([_|_]).
/*** Double List Check ***/
double_check(L, L1) :- \+islist(L) -> write("List 1 invalid");
\+islist(L1)-> write("List 2`invalid"); write("Success").
Это shuold работать. Online код делает именно то, что я хочу. Но на консоли Prolog моего компьютера он дает совершенно другой ответ:
?- double_check(a, [a]).
[76,105,115,116,97,32,49,32,105,110,118,97,108,105,100,97]
true.
пример. У меня нет ИДЕИ, откуда этот список. Может кто-нибудь сказать мне мою ошибку и помочь мне исправить это, пожалуйста? Спасибо вам всем!
Что такое 'e_lista'? – lispHK01
Мой плохой, у меня был код, написанный на португальском языке и переведенный. Я забыл об этом. Спасибо, что заметили! Ред. – Jataki
Простите еще раз. Забыл удалить «a». Я долго не спал, дайте мне отдохнуть, ребята, lol jk. Спасибо за примечание. Теперь это исправлено! – Jataki