>>200
% Prolog

学校のホームページに載っている休講情報に接続して、それから先生の名前と日にちだけ取り出す(URL,_休講情報ならび) :-
    w3c(URL,Lines),
    先生の名前と日にちだけ取り出す(Lines,_休講情報ならび),!.

先生の名前と日にちだけ取り出す(Lines,_休講情報ならび) :-
    append(L0,[A|R1],Lines),
    sub_atom(A,_,2,_,先生),
    月日を取り出す(L0,_月,_日),
    ある日の休講情報ならびを得る([A|R1],_月,_日,_ある日の休講となる情報ならび,_残りならび),
    先生の名前と日にちだけ取り出す(_残りならび,R),
    append(_ある日の休講となる情報ならび,_休講情報ならび),!.
先生の名前と日にちだけ取り出す(_,[]) :- !.

月日を取り出す(Lines,_月,_日) :-
    append(_,[A|_],Lines),sub_atom(A,S,1,_,月),sub_atom(A,0,S,_,_月),
    append(_,[B|_],Lines),sub_atom(A,S,1,_,日),sub_atom(B,0,S,_,_日),!.

ある日の休講情報ならびを得る([],_,_,[],[]) :- !.
ある日の休講情報ならびを得る(['\n'|R],_,_,[],R) :- !.
ある日の休講情報ならびを得る([A|R1],_月,_日,[[_氏名,_月,_日]|R2],_残りならび) :-
    sub_atom(A,_,2,_,先生),
    split(A,[' '],[_姓,_名,先生]),
    concat_atom([_姓,_名],_氏名),
    ある日の休講情報ならびを得る(R1,_月,_日,R2,_残りならび).