home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 9 / 09.iso / l / l210 / 1.ddi / REFEXAMP.ARC / FINDALL3.PRO < prev    next >
Encoding:
Text File  |  1988-06-21  |  1.5 KB  |  47 lines

  1. %====================== findall/3             ===============================
  2. /* Answer to first exercise on @@Pageref[42]
  3.    Use Shift-F9 to select the Dialog window and then Ctrl-F10 to explode the
  4.    window. Enter the goal show(Name, X, Y).
  5. */
  6.  
  7. domains
  8.    lyrics = lyrics(symbol, symbol)
  9.    name = string
  10.    music =  music(symbol, symbol)
  11.    mulist = music*
  12.    namelist = name*
  13.  
  14. database
  15.    musicdba(symbol, symbol)
  16.  
  17. predicates
  18.    show(name, lyrics, music)
  19.  
  20. GOAL
  21.    findall(M, show(X, Y, M), Musiclist),
  22.    findall(NAME, musicdba(_, NAME), Namelist),
  23.    write(Musiclist, "\n", Namelist).
  24.  
  25. clauses
  26.    show("West Side Story", lyrics(stephen, sondheim), X) :-
  27.       musicdba(leonard, bernstein),
  28.       X=music(leonard, bernstein).
  29.  
  30.    show("Apocalypses Now", lyrics(the, doors), music(jim, morrison)).
  31.    show("Repo Man", lyrics(iggy, pop), music(iggy, pop)).
  32.    show("Live and Let Die", lyrics(paul, mc_cartney), music("", wings)).
  33.    show("Two Hundred Motels", lyrics(frank, zappa), music(mothers_of,invention)).
  34.    show("Chess", lyrics("Andersson Rice", " & Ulvaeus"), music(london,symphony)).
  35.    show("The Wall", lyrics(pink, floyd), music(pink, floyd)).
  36.    show("Stop Making Sense", lyrics(talking, heads), music(talking, heads)).
  37.  
  38.    /*  Database clauses are automatically asserted */
  39.    musicdba(leonard, bernstein).
  40.    musicdba(jim, morrison).
  41.    musicdba(iggy, pop).
  42.    musicdba("", wings).
  43.    musicdba(mothers_of, inventions).
  44.    musicdba(london, symphony).
  45.    musicdba(pink, floyd).
  46.    musicdba(talking, heads).
  47.