在Prolog中添加子句

时间:2014-05-13 11:39:57

标签: database prolog prolog-assert tell

我即将为我的项目编写代码,即在SWI-Prolog中创建数据库。该程序应包含ADDING,DELETING,SORTING和SEARCHING条目。我的问题是:

  1. 我想添加'跑步者'用大写字母。
  2. 当我在数据库中添加/删除某些内容时,该文件保持为空或唯一的条目是我实际添加的条目。
  3. 我使用一个文件作为数据库条目,使用第二个文件作为所有逻辑。谢谢你提前帮助我。

    在数据库中,有以下记录:

    :- dynamic runner/6.
    
    runner(elvis, presley, _, _, _ ,_).
    runner(darth, vader, _, _, _, _).
    runner(louis, armstrong, _, _, _, _).
    runner(wayne, gretzky, _, _, _, _).
    

    ' _'组件例如是DATE,HEIGHT,WEIGHT,......数据库文件名为database.pl

    在逻辑上,有这样的:

    add :-
       write_ln('Name: '),
       readln(M),
       write_ln('Surname: '),
       readln(P),
       insert(M, P).
    
    del :-
       write_ln('Name: '),
       readln(M),
       write_ln('Surname: '),
       readln(P),
       delete(M, P).
    
    insert([M], [P]) :-
        tell('database.pl'),
        asserta(pretekar(M, P,_,_,_,_)),
        told,
        write('Added runner: '), write(M), write(' '), write_ln(P).
    
    delete([M], [P]) :-
        tell('database.pl'),
        retract(runner(M, P, _, _, _, _)),
        listing(runner),
        told,
        write('Deleted runner: '), write(M), write(' '), write_ln(P).
    

    每个跑步者必须用他的姓名和姓氏书写,其他领域可以是空白。如何添加至少姓名,姓氏和最大姓名,姓氏,身高,日期,体重...只有前两个字段是强制性的,其他字段不是。

0 个答案:

没有答案