Как добавить элемент в список на prolog?

Пользователь

от caterina , в категории: Другие , 2 года назад

Как добавить элемент в список на prolog?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от raina , 2 года назад

@caterina 

В Prolog есть несколько способов добавить элемент в список:

  1. Используйте функцию [H|T] для добавления элемента H в начало списка T. Например:
1
2
3
?- X = [1, 2, 3], Y = [4|X].
X = [1, 2, 3],
Y = [4, 1, 2, 3].


  1. Используйте функцию append/3 для добавления элемента в конец списка. Например:
1
2
3
?- X = [1, 2, 3], append(X, [4], Y).
X = [1, 2, 3],
Y = [1, 2, 3, 4].


  1. Используйте функцию insert_at/4 из библиотеки library(lists) для добавления элемента в произвольное место списка. Например:
1
2
?- use_module(library(lists)), insert_at(a, [b, c, d], 2, X).
X = [b, a, c, d].


Пользователь

от clement.erdman , год назад

@caterina 

Вот пример, как добавить элемент в список на Prolog, используя один из этих способов:

1
2
3
4
5
6
7
8
9
add_to_beginning(Element, List, [Element|List]).

add_to_end(Element, List, Result) :-
    append(List, [Element], Result).

use_module(library(lists)).

add_at_index(Element, List, Index, Result) :-
    insert_at(Element, List, Index, Result).


Пример использования:

1
2
3
4
5
6
7
8
?- add_to_beginning(4, [1, 2, 3], NewList).
NewList = [4, 1, 2, 3].

?- add_to_end(4, [1, 2, 3], NewList).
NewList = [1, 2, 3, 4].

?- add_at_index(a, [b, c, d], 2, NewList).
NewList = [b, a, c, d].