Программа останавливается после отображения «ложь» - PullRequest
0 голосов
/ 31 мая 2019

Наш преподаватель добавил код для операций добавления, удаления и отображения списка.Но это не работает, когда я говорю добавить или удалить, он просто показывает «Ложь» в консоли.Как я могу пройти мимо этого Ложного?

...

del_data(Data, List, NewList):- find(Data, List, [], ListAfterDeletion), NewList = ListAfterDeletion.

find([_ | _], [], _):-write("There is no such element").
find([DataHead | DataTail], [ListHead | ListTail], NewList, ListAfterDeletion):- (similar(DataHead, DataTail, ListHead) -> reverse(NewList, Reversed),
append(Reversed, ListTail, Result),
ListAfterDeletion = Result; 
find([DataHead | DataTail], ListTail, [ListHead | NewList], ListAfterDeletion)).
similar(DataHead, DataTail, [HeadofListHead | TailofListHead]):- DataHead == HeadofListHead, DataTail == TailofListHead.


main(L):-
    write("Please select your operation:\n1. Add\n2. Delete\n3. Display\n4. Exit\n"),
    read(Operation),
    (Operation is 1 ->write("Please input your data to add:\n"), read(Data), add_data(Data, L, NewList), main(NewList) ; 
    (Operation is 2 -> write("Please input your data to delete\n"), read(Data), del_data(Data, L, NewList), main(NewList)  ;
    (Operation is 3 -> write(L), write("\n"), main(L) ;
                                            write("Goodbye")))).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...