cz0 писал(а):
Совершенно непонятный синтаксис…
Это не синтаксис, это «парадигма» другая.
Давайте решим первую задачу. Разделим её на две части:
1. Отыщем минимальное значение температуры.
2. Отыщем номер элемента, обладающего этим минимальным значением.
Пусть алгоритм получится двухпроходный, зато первая часть может оказаться полезной при решении третьей задачи.
Код:
CONSTANTS
december=[-1,-2,-5,-7,-6,-7,-3]
DOMAINS
int=integer
list=integer*
PREDICATES
min(int,int,int)
minlist(list,int)
xpos(list,int,int)
CLAUSES
min(X,Y,X):-
X<Y,!.
min(_,Y,Y).
minlist([X],X).
minlist([H|T],M):-
minlist(T,MT),
min(H,MT,M).
xpos([X|_],X,1).
xpos([_|T],X,I):-
xpos(T,X,IT),
I=IT+1.
GOAL
xpos(december,Y,X), minlist(december,Y), write(X).
Рекурсия не хвостовая; нет уверенности в отсутствии ошибок; но идея, надеюсь, ясна.