Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.145.178.226] |
|
Сообщ.
#1
,
|
|
|
Подскажите пожалуйста, как решить поставленную задачу:
"Определить предикат для объединения элементов двух списков, находящихся в диапазоне от N1 до N2" т.е. я ввожу 2 списка, например: [1,2,3,4,5] и [3,4,5,6] затем ввожу N1=2 и N2=4. И должен получиться следующий список:[2,3,4,3,4]. есть код по объединению двух списков domains int=integer intl=integer* predicates inters(intl,intl,intl) clauses inters([],L2,L2). inters([H|T1],L2,[H|T2]):- inters(T1,L2,T2). goal inters([1,2,3,4,5],[5,7,8,9,10],L),write(L),nl. |
Сообщ.
#2
,
|
|
|
Цитата Астр0 @ т.е. я ввожу 2 списка, например: [1,2,3,4,5] и [3,4,5,6] затем ввожу N1=2 и N2=4. И должен получиться следующий список:[2,3,4,3,4]. Нет, должен получиться список [2,3,4,4,5,6]. domains list = integer* predicates conc(list,list,list) sublist(integer,integer,integer,list,list) goal clearwindow,A=2,B=4, sublist(A,B,1,[1,2,3,4,5],L1), sublist(A,B,1,[3,4,5,6],L2),conc(L1,L2,L),write(L). clauses conc([], L, L). conc([H|T], L, [H|T1]):- conc(T,L,T1). sublist(_,_,_,[],[]):-!. sublist(N1,N2,N,[H|T],[H|T1]):- N>= N1, N<=N2,!, NN=N+1, sublist(N1,N2,NN,T,T1). sublist(N1,N2,N,[H|T],T1):- NN=N+1,!, sublist(N1,N2,NN,T,T1). |