katsu #1357(2007/07/23 02:25 GMT) [ Prolog ] Rating0/0=0.00
酷く面倒です。データの型変換とか自動のLLはいいなぁ。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
week(Y,M,D,R):- format_time(atom(WeekP), "%a", date(Y,M,D,0,0,0,0,-,-),posix), weekdays(WD), find_index(WeekP,WD,WeekN), between(0,4,I), D1 is D - WeekN + I, date_time_stamp(date(Y,M,D1,0,0,0,0,-,-), Stamp), stamp_date_time(Stamp,D2,0), date_time_value(date,D2,R). weekdays(['Mon','Tue','Wed','Thu','Fri','Sat','Sun']). find_index(A,L,R):-find_index(A,L,0,R). find_index(_,[],_,_):-fail. find_index(A,[L|_],I,I):- A==L,!. find_index(A,[_|Ls],I,R):-writeln([A,Ls]),succ(I,I1),find_index(A,Ls,I1,R). :-findall(X,week(2007,07,31,X),Xs),writeln(Xs).
Rating0/0=0.00-0+
[ reply ]
katsu
#1357()
[
Prolog
]
Rating0/0=0.00
week(Y,M,D,R):- format_time(atom(WeekP), "%a", date(Y,M,D,0,0,0,0,-,-),posix), weekdays(WD), find_index(WeekP,WD,WeekN), between(0,4,I), D1 is D - WeekN + I, date_time_stamp(date(Y,M,D1,0,0,0,0,-,-), Stamp), stamp_date_time(Stamp,D2,0), date_time_value(date,D2,R). weekdays(['Mon','Tue','Wed','Thu','Fri','Sat','Sun']). find_index(A,L,R):-find_index(A,L,0,R). find_index(_,[],_,_):-fail. find_index(A,[L|_],I,I):- A==L,!. find_index(A,[_|Ls],I,R):-writeln([A,Ls]),succ(I,I1),find_index(A,Ls,I1,R). :-findall(X,week(2007,07,31,X),Xs),writeln(Xs).Rating0/0=0.00-0+
[ reply ]