Главная /
Основы программирования на языке Visual Prolog /
Определение предикатов difference и member имеет вид: difference([], _, []). difference([A | L1], L2, L) :- member(A, L2), !, difference(L1, L2, L). difference([A | L1], L2, [A | L]) :- difference(L1, L2, L). member(X, [X | _]):- !. member(X, [_ | L]):- m
Определение предикатов difference
и member
имеет вид:
difference([], _, []).
difference([A | L1], L2, L) :- member(A, L2), !, difference(L1, L2, L).
difference([A | L1], L2, [A | L]) :- difference(L1, L2, L).
member(X, [X | _]):- !.
member(X, [_ | L]):- member(X, L).
Какое решение имеет цель difference([4, 3, 2, 1], [1, 3, 5], L)
?
вопрос
Правильный ответ:
[4, 2]
[2, 4]
[3, 1]
[1, 3]
Сложность вопроса
42
Сложность курса: Основы программирования на языке Visual Prolog
94
Оценить вопрос
Комментарии:
Аноним
Зачёт сдан. Лечу в бар отмечать победу над тестом интут
13 мар 2019
Аноним
Какой человек ищет вот эти ответы интуит? Это же крайне просто
13 ноя 2015
Другие ответы на вопросы из темы программирование интуит.
- # Определение предиката conc в PIE имеет вид:conc(d(A, B), d(B, C), d(A, C)). В результате вызова conc(d([1, 2 | X], X), d([2, 3], []), d(L, _)) переменная X примет значение
- # В результате унификации списков [1, 2, 3] и [X, Y | Z] переменные получат значения
- # Определение предиката count имеет вид:count([H, K | T], C, N) :- C1 = C + H + K, count(T, C1, N). count([H], C, N) :- C1 = C + H, count(T, C1, N). count([], N, N). Какое значение примет переменная R в результате вызова цели count([1, 2, 3], 0, R)?
- # Определение предикатов arc и conn имеет вид: arc(1, 2). arc(1, 3). arc(3, 4). conn(X, X). conn(X, Z):- arc(X, Y), conn(Y, Z). Сколько решений имеет цель conn(1, X), conn(X, 4) ?
- # Определение предикатов arc, cont и path имеет вид: arc(1, 3). arc(3, 4). cont([X | L], [Z, X | L]):- arc(X, Z), not(isMember(Z, L)). path([[Y | L] | _], Y, [Y | L]). path([P | PL], Y, R):- findall(P1, cont(P, P1), L1), append(PL, L1, PL1), path(PL1, Y, R). Предикат path реализует алгоритм