文件流操作PROLOGPROLOG文件流操作;處理
我工作的學術建議,一個基於案例推理 子系統項提取 能夠採取新的學生檔案(副本) 並將其與student_profiles數據庫在 爲了找到最佳匹配,如果不是完全匹配。
我仍然不是很熟悉的語言和 我試圖打開一個文件,並提取 一個明確的始發假設
student_profile/4 : student_profile(L1, name, L2, L3)
這是在student.pl
找到。
一旦我從特等文件中提取的謂語,我希望能夠 將其分配給一個變量,並把它分解 這樣我就可以提取的第一個參數(在這種情況下L1
)以 做一些計算。
這是我到目前爲止有:
我已經打開了文件,我能看到學生的個人資料或成績單發現謂詞 的完整列表。
load :- open('h:/AAS/Novel_Profiles/vivian.pl', read, Stream),
read(Stream, X),
read_data(Stream, X, StudentP),
write(StudentP),
close(Stream).
read_data(_Stream, end_of_file, []) :- !.
read_data(Stream, X, [X|StudentP]) :-
read(Stream, Y),
read_data(Stream, Y, StudentP).
我已經看過了如何提取一個術語,用它作進一步處理的例子,但我有 沒有運氣(或者也許我沒有使用正確的術語)。
任何幫助將不勝感激。
感謝您的快速反應,會是這樣的情況,如果我想查詢相同的程序將適用程序內的數據?就像在關閉流member_sp(StudentPred,StudentData)之前添加類似的東西,當然在底部定義這樣的東西? – user1308665 2012-04-02 22:59:25
是的,像Prolog這樣的解釋器使用REPL(Read,Eval,Print,Loop)作爲程序開發的一般方法。 – CapelliC 2012-04-03 05:45:25
謝謝你的幫助,我還想問一件事。這看起來很簡單,但我不太明白。一旦我讀完文件;我需要的數據有一個複合項的形式:[student_predicate([2d vector],vivian,[taken(courses),...],[])| _A]。有沒有什麼方法可以將術語的結構放下來,並分配給各個變量進行處理,如:V = [Vector],Name = vivian,Courses = [taken(courses),...],Recommendations = [] ?我想從一個腳本中完成。我一直在尋找(unvi)= ../2和functor/3 – user1308665 2012-04-04 06:02:17