home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / lifeos2.zip / LIFE-1.02 / TESTS / LF / INHERIT.LF < prev    next >
Text File  |  1996-06-04  |  1KB  |  87 lines

  1. % FILE. . . . . /_/hassan/_/life/ok/inherit.life
  2. % EDIT BY . . . Hassan Ait-Kaci
  3. % ON MACHINE. . Prl316
  4. % STARTED ON. . Tue Mar 31 14:23:00 1992
  5.  
  6. % Last modified on Tue Mar 31 14:23:09 1992 by Hassan
  7. private(man)? % Avoid conflict with built-in 'man' predicate.
  8.  
  9. delay_check(person)?
  10.  
  11. :: P:person(sex => S:sex,friends => F) | friendly(F).
  12.  
  13. :: R:robot(power_supply => S,cooling_fluid => {air;oil;water}) | powerful(S).
  14.  
  15.   
  16. powerful({petrol;nuclear_reactor;battery;clockwork_spring}).
  17.  
  18.        
  19. friendly({mathew;mark;luke;john}).
  20.  
  21. friendly({mary;elizabeth}).
  22.  
  23. mathew <| man.
  24. mark <| man.
  25. luke <| man.
  26. john <| man.
  27. judas <| man.
  28.  
  29. mary <| woman.
  30. elizabeth <| woman.
  31.  
  32. three_billion_dollar_man <| man.
  33. three_billion_dollar_man <| robot.
  34.  
  35.   
  36. man <| person.
  37. :: man(sex => male).
  38.  
  39. woman <| person.
  40. :: woman(sex => female).
  41.  
  42. male <| sex.
  43. female <| sex.
  44.  
  45. opposite_sex(male) -> female.
  46. opposite_sex(female) -> male.
  47.  
  48. t1 :-
  49.     A=mathew,
  50.     write(A),
  51.     nl,
  52.     A=@(hair => brown),
  53.     write(A),
  54.     nl,
  55.     A=man,
  56.     write(A),
  57.     nl,
  58.     A=man(teeth => yellow),
  59.     write(A),
  60.     nl.
  61.  
  62. t2 :-
  63.         A=robot,
  64.         B=person,
  65.         pretty_write(A,' & ',B),
  66.         nl,
  67.         A=B,
  68.         pretty_write(A),
  69.         nl,
  70.         A=@(brain => silly),
  71.         pretty_write(A),
  72.         nl,
  73.         fail.
  74.   
  75. t3 :-
  76.     A=robot(bones => metal),
  77.     pretty_write(A),
  78.     nl,
  79.     A=man,
  80.     pretty_write(A),
  81.     nl,
  82.     A=@(hair => nylon_wig),
  83.     pretty_write(A),
  84.     nl.
  85.  
  86.  
  87.