time
time(hour, minute)
형식의 구조가 있다고합니다. 어떻게 그들을 비교하기위한 규칙을 작성하려고합니까? time1이 time2 전의 경우 yes를 리턴하는 compareTime (time1, time2) 행을 따라있는 것.프롤로그에서 시간 비교
나는 C로 몇 년간 일한 끝에 Prolog로 시작하고 있으며, 전체 언어가 매우 혼란 스럽다.
time
time(hour, minute)
형식의 구조가 있다고합니다. 어떻게 그들을 비교하기위한 규칙을 작성하려고합니까? time1이 time2 전의 경우 yes를 리턴하는 compareTime (time1, time2) 행을 따라있는 것.프롤로그에서 시간 비교
나는 C로 몇 년간 일한 끝에 Prolog로 시작하고 있으며, 전체 언어가 매우 혼란 스럽다.
시간 (H
, H1
, H2
)과 분 (M1
, M2
)이 숫자는, 당신이로 쓸 수 있습니다 가정하면 : 2 라인에
earlier(time(H, M1), time(H, M2)) :- !, M1 < M2.
earlier(time(H1, _), time(H2, _)) :- H1 < H2.
밑줄 익명 변수는 우리 돈 즉,이다 시간을 보면서 어느 시간이 더 빠른지를 결정할 수 있다면 이름을 분에 할당하는 것이 어렵습니다.
표준 compare/3
조건은 이미 당신이 원하는 것을 :
?- compare(O, time(1,1), time(1,1)).
O = (=).
?- compare(O, time(1,1), time(1,2)).
O = (<).
?- compare(O, time(1,3), time(1,2)).
O = (>).
?- compare(O, time(1,3), time(2,2)).
O = (<).
?- compare(O, time(3,2), time(2,2)).
O = (>).
그래서 ...
earlier(T1, T2) :- compare((<), T1, T2).
'@<'도 할 것입니다. +1. –
이, 감사 작품! 두 번째 줄에 약간의 질문이 있습니다. '_'의 의미는 무엇입니까? –
@dc, 선택 지점을 남기고 대답 – Kaarel
을 편집했습니다. – salva