亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? frames.pro

?? prolog開發(fā)工具
?? PRO
字號:
% FRAMES - just the frame system from FOOPS for stand alone use.

:- op(100,fy,val).
:- op(100,fy,calc).
:- op(100,fy,def).
:- op(100,fy,add).
:- op(100,fy,del).

member(X,[X|Y]).
member(X,[Y|Z]) :- member(X,Z).

% prep_req takes a request of the form Slot-Val, and forms it into the
% more accurate req(Thing,Slot,Facet,Value).  If no facet was mentioned
% in the original request, then the facet of "any" is used to indicate
% the system should use everything possible to find a value.

prep_req(Slot-X,req(T,Slot,val,X)) :- var(X), !.
prep_req(Slot-X,req(T,Slot,Facet,Val)) :-
	nonvar(X),
	X =.. [Facet,Val],
	facet_list(FL),
	member(Facet,FL), !.
prep_req(Slot-X,req(T,Slot,val,X)).

facet_list([val,def,calc,add,del,edit]).


% retrieve a list of slot values

get_frame(Thing, ReqList) :-
	frame(Thing, SlotList),
	slot_vals(Thing, ReqList, SlotList).

slot_vals(_,[],_).
slot_vals(T,[Req|Rest],SlotList) :-
	prep_req(Req,req(T,S,F,V)),
	find_slot(req(T,S,F,V),SlotList), 
	!, slot_vals(T,Rest,SlotList).
slot_vals(T, Req, SlotList) :-
	prep_req(Req,req(T,S,F,V)),
	find_slot(req(T,S,F,V), SlotList).

find_slot(req(T,S,F,V), SlotList) :-
	nonvar(V), !,
	find_slot(req(T,S,F,Val), SlotList), !,
	(Val == V; member(V,Val)).
find_slot(req(T,S,F,V), SlotList) :-
	member(S-FacetList, SlotList), !,
	facet_val(req(T,S,F,V),FacetList).
find_slot(req(T,S,F,V), SlotList) :-
	member(ako-FacetList, SlotList),
	facet_val(req(T,ako,val,Ako),FacetList),
	(member(X,Ako); X = Ako),
	frame(X, HigherSlots),
	find_slot(req(T,S,F,V), HigherSlots), !.
find_slot(Req,_) :-
	error(['frame error looking for:',Req]).

facet_val(req(T,S,F,V),FacetList) :-
	FV =.. [F,V],
	member(FV,FacetList), !.
facet_val(req(T,S,val,V),FacetList) :-
	member(val ValList,FacetList),
	member(V,ValList), !.
facet_val(req(T,S,val,V),FacetList) :-
	member(def V,FacetList), !.
facet_val(req(T,S,val,V),FacetList) :-
	member(calc Pred,FacetList),
	CalcPred =.. [Pred,req(T,S,val,V)],
	call(CalcPred).

% add a list of slot values

add_frame(Thing, UList) :-
	old_slots(Thing,SlotList),
	add_slots(Thing,UList,SlotList,NewList),
	retract(frame(Thing,_)),
	asserta(frame(Thing,NewList)), !.	

old_slots(Thing,SlotList) :-
	frame(Thing,SlotList), !.
old_slots(Thing,[]) :-
	asserta(frame(Thing,[])).

add_slots(_,[],X,X).
add_slots(T,[U|Rest],SlotList,NewList) :-
	prep_req(U,req(T,S,F,V)),
	add_slot(req(T,S,F,V),SlotList,Z),
	add_slots(T,Rest,Z,NewList).
add_slots(T,X,SlotList,NewList) :-
	prep_req(X,req(T,S,F,V)),
	add_slot(req(T,S,F,V),SlotList,NewList).

add_slot(req(T,S,F,V),SlotList,[S-FL2|SL2]) :-
	delete(S-FacetList,SlotList,SL2),
	add_facet(req(T,S,F,V),FacetList,FL2).

add_facet(req(T,S,F,V),FacetList,[FNew|FL2]) :-
	FX =.. [F,OldVal],
	delete(FX,FacetList,FL2),
	add_newval(OldVal,V,NewVal),
	!, check_add_demons(req(T,S,F,V),FacetList),
	FNew =.. [F,NewVal].

add_newval(X,Val,Val) :- var(X), !.
add_newval(OldList,ValList,NewList) :-
	list(OldList),
	list(ValList),
	append(ValList,OldList,NewList), !.
add_newval([H|T],Val,[Val,H|T]).
add_newval(_,Val,Val).

check_add_demons(req(T,S,F,V),FacetList) :-
	get_frame(T,S-add(Add)), !,
	AddFunc =.. [Add,req(T,S,F,V)],
	call(AddFunc).
check_add_demons(_,_).


% delete a list of slot values

del_frame(Thing) :-
	retract(frame(Thing,_)).
del_frame(Thing) :-
	error(['No frame',Thing,'to delete']).

del_frame(Thing, UList) :-
	old_slots(Thing,SlotList),
	del_slots(Thing,UList,SlotList,NewList),
	retract(frame(Thing,_)),
	asserta(frame(Thing,NewList)).	

del_slots(_,[],X,X).
del_slots(T,[U|Rest],SlotList,NewList) :-
	prep_req(U,req(T,S,F,V)),
	del_slot(req(T,S,F,V),SlotList,Z),
	del_slots(T,Rest,Z,NewList).
del_slots(T,X,SlotList,NewList) :-
	prep_req(X,req(T,S,F,V)),
	del_slot(req(T,S,F,V),SlotList,NewList).

del_slot(req(T,S,F,V),SlotList,[S-FL2|SL2]) :-
	remove(S-FacetList,SlotList,SL2),
	del_facet(req(T,S,F,V),FacetList,FL2).
del_slot(Req,_,_) :-
	error(['del_slot - unable to remove',Req]).

del_facet(req(T,S,F,V),FacetList,FL) :-
	FV =.. [F,V],
	remove(FV,FacetList,FL),
	!, check_del_demons(req(T,S,F,V),FacetList).
del_facet(req(T,S,F,V),FacetList,[FNew|FL]) :-
	FX =.. [F,OldVal],
	remove(FX,FacetList,FL),
	remove(V,OldVal,NewValList),
	FNew =.. [F,NewValList],	
	!, check_del_demons(req(T,S,F,V),FacetList).
del_facet(Req,_,_) :-
	error(['del_facet - unable to remove',Req]).

check_del_demons(req(T,S,F,V),FacetList) :-
	get_frame(T,S-del(Del)), !,
	DelFunc =.. [Del,req(T,S,F,V)],
	call(DelFunc).
check_del_demons(_,_).

% print a frame

print_frames :-
	frame(Thing, SlotList),
	print_frame(Thing),
	fail.
print_frames.

print_frame(Thing) :-
	frame(Thing, SlotList),
	write_line(['Frame:',Thing]),
	print_slots(SlotList), nl.

print_slots([]).
print_slots([Slot|Rest]) :-
	write_line(['  Slot:',Slot]),
	print_slots(Rest).

% utilities

delete(X,[],[]).
delete(X,[X|Y],Y) :- !.
delete(X,[Y|Z],[Y|W]) :- delete(X,Z,W).

remove(X,[X|Y],Y) :- !.
remove(X,[Y|Z],[Y|W]) :- remove(X,Z,W).

errors(off).

error(_) :- errors(off), !, fail.
error(E) :-
	nl, write('*** '),
	write_line(E),
	write(' ***'), nl,
	fail.

write_line([]) :- nl.
write_line([H|T]) :-
	write(H),tab(1),
	write_line(T).
	
time_test :-
	write('TT> '),
	read(X),
	time(T1),
	X,
	time(T2),
	nl,nl,
	T is T2 - T1,
	write(time-T).  

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本美女一区二区三区| 日韩精品91亚洲二区在线观看 | 国产一区二区在线观看免费| 日韩欧美激情在线| 国产精品18久久久| 国产精品午夜在线观看| 99久久99久久综合| 一区二区三区电影在线播| 欧美丝袜丝nylons| 日本午夜精品视频在线观看| 久久久亚洲国产美女国产盗摄| 成人免费视频一区二区| 亚洲欧洲制服丝袜| 欧美久久久久久蜜桃| 精品一区二区成人精品| 日本一区二区三区久久久久久久久不| aaa欧美色吧激情视频| 亚洲国产精品嫩草影院| 日韩欧美国产午夜精品| 成人ar影院免费观看视频| 亚洲国产中文字幕| 精品入口麻豆88视频| 99综合影院在线| 午夜视频久久久久久| 久久久久久亚洲综合影院红桃| 94-欧美-setu| 蜜臀av性久久久久蜜臀aⅴ四虎| 久久久精品日韩欧美| 在线视频国内一区二区| 美日韩黄色大片| 国产精品第四页| 91精品国产91久久久久久一区二区 | 日韩一区精品视频| 国产清纯美女被跳蛋高潮一区二区久久w| 99久久免费精品高清特色大片| 五月激情六月综合| 中文字幕巨乱亚洲| 欧美女孩性生活视频| 国产精品99久| 午夜成人免费视频| 欧美国产精品中文字幕| 制服丝袜亚洲网站| 91影院在线观看| 久草热8精品视频在线观看| 日韩一区中文字幕| 日韩美女主播在线视频一区二区三区 | 欧美一级电影网站| 色呦呦日韩精品| 寂寞少妇一区二区三区| 亚洲一区欧美一区| 久久久久久一级片| 911精品国产一区二区在线| 国产白丝精品91爽爽久久 | 亚洲高清在线精品| 国产精品久久毛片av大全日韩| 3751色影院一区二区三区| 95精品视频在线| 国产精品自拍网站| 视频一区视频二区中文| 中文字幕一区二区三区精华液| 日韩欧美一级在线播放| 在线一区二区三区四区| 国产成人在线观看| 麻豆国产精品视频| 亚洲成av人片在线| 亚洲欧美日韩一区| 中文字幕欧美三区| 精品国产乱码久久久久久免费| 欧美网站大全在线观看| av资源网一区| 国产精品一区二区三区99| 视频在线在亚洲| 亚洲一区二区三区四区不卡| 国产精品美女视频| 久久久久久麻豆| 精品理论电影在线| 在线观看91精品国产麻豆| 色婷婷综合激情| av电影在线观看一区| 国产精品综合在线视频| 麻豆传媒一区二区三区| 午夜精品免费在线观看| 亚洲久草在线视频| 国产精品短视频| 日本一区免费视频| 久久日一线二线三线suv| 91精品国产91久久久久久一区二区 | 欧美在线一二三四区| 91在线播放网址| 97精品国产露脸对白| 成人久久18免费网站麻豆| 国产精品亚洲专一区二区三区 | 亚洲精品中文在线观看| 一区视频在线播放| 国产精品女主播av| 国产人久久人人人人爽| 精品处破学生在线二十三| 91精品国产91久久久久久最新毛片 | 日韩欧美一区二区在线视频| 欧美高清视频www夜色资源网| 欧美亚洲日本国产| 91网页版在线| av欧美精品.com| 成人av网站免费观看| 波波电影院一区二区三区| 成人av网在线| 99re在线视频这里只有精品| 99v久久综合狠狠综合久久| 91免费版pro下载短视频| 91美女在线看| 欧美在线看片a免费观看| 欧美系列在线观看| 欧美日韩一区二区在线视频| 欧美日韩一卡二卡| 欧美日本免费一区二区三区| 欧美日韩国产综合一区二区| 欧美日韩情趣电影| 51久久夜色精品国产麻豆| 日韩欧美一二三四区| 日韩欧美另类在线| 26uuu国产在线精品一区二区| 精品国产乱码久久久久久久久 | 免费观看一级特黄欧美大片| 久久精品久久99精品久久| 激情小说欧美图片| 国产剧情在线观看一区二区| 成人免费看黄yyy456| 99re这里只有精品首页| 欧美日韩在线直播| 欧美一级片在线看| 26uuu国产日韩综合| 欧美国产精品专区| 一区二区三区日韩欧美| 亚洲大片一区二区三区| 日本欧美一区二区三区乱码| 精品一区二区三区在线播放| 风间由美一区二区av101| 色综合中文综合网| 成人黄色在线网站| 91久久一区二区| 欧美一区二区视频在线观看 | 成人在线视频一区二区| 91热门视频在线观看| 欧美日韩免费一区二区三区| 欧美一卡二卡三卡四卡| 久久免费的精品国产v∧| 中文字幕一区av| 一区二区免费在线| 男人的j进女人的j一区| 激情欧美日韩一区二区| 99久久精品免费| 欧美三电影在线| 在线视频观看一区| 精品国产乱码久久久久久1区2区| 日本一区二区成人在线| 亚洲免费av高清| 午夜一区二区三区在线观看| 精品亚洲国内自在自线福利| 大桥未久av一区二区三区中文| 91丨九色丨蝌蚪富婆spa| 欧美一区二区三区系列电影| 精品国产不卡一区二区三区| 国产精品日韩成人| 亚洲一区二区视频在线| 国产一区二区在线免费观看| 91在线视频播放| 制服丝袜av成人在线看| 国产亚洲制服色| 亚洲成人自拍一区| 国产一区二区三区在线观看免费 | 国产综合久久久久久鬼色| 成人精品电影在线观看| 欧美日韩一区二区三区在线| 日韩免费高清av| 亚洲综合av网| 国产一区二区在线免费观看| 在线精品视频一区二区三四| 日韩一区二区在线看片| 亚洲欧美日韩国产手机在线| 美女网站视频久久| av毛片久久久久**hd| 精品国产伦一区二区三区免费| 亚洲免费在线播放| 久久99国产精品久久99果冻传媒| 成人午夜激情影院| 日韩欧美在线一区二区三区| 亚洲特黄一级片| 久久99在线观看| 99久久免费视频.com| 久久久久久麻豆| 爽好多水快深点欧美视频| 成人美女视频在线看| 欧美精品在线一区二区三区| 欧美激情自拍偷拍| 午夜视频在线观看一区二区 | av网站免费线看精品| 777xxx欧美| 亚洲一级片在线观看| 成人性生交大片免费看中文| 在线综合视频播放|