Напишите предикат abslist(L, R), где L — список заданных чисел, R — список абсолютных значений, соответствующих числам в L.
Пример:
?- abslist([0, -1, -2, 3], L).
L = [0, 1, 2, 3].
Напишите предикат abslist(L, R), где L — список заданных чисел, R — список абсолютных значений, соответствующих числам в L.
Пример:
?- abslist([0, -1, -2, 3], L).
L = [0, 1, 2, 3].
integer_absolute(I, A) :- ...
. Укажите, как I
связано с A
. Получив это, вы можете использовать maplist(integer_absolute, Is, As)
, чтобы поднять это отношение до списков целых чисел. В идеале отношение должно быть настолько общим, чтобы его можно было использовать во всех направлениях! 28.04.2017 maplist(\X^Abs^(Abs #= abs(X)), Is, As)
(или is
вместо #=
), используя library(lambda)
. 28.04.2017 Я думаю, это то, что вам нужно
absolute(X,X):-
X>=0.
absolute(X,Y):-
X<0,
Y is X * -1.
abslist([H|T],[H1|T2]):- absolute(H,H1),abslist(T,T2).
abslist([],[]).