RU beehive logo ITEC dept promo banner
ITEC 380
2009fall
ibarland

homeinfolecturesexamshwsarchive

lect10b
prolog intro

  Ned's notes:         http://www.radford.edu/nokie/classes/380/p.html
  fam-tree in slides:  http://www.horstmann.com/sjsu/cs152/19-prolog1.html
  tutorials:           http://www.learnprolognow.com
                       http://www.amzi.com/AdventureInProlog
  jlog, a web interpreter: see hints on Running JLog

 - facts vs rules (and starting /usr/local/bin/xsb on a rucs terminal)
   To load a file family.P from the xsb prompt, type:
   [family].
 - a standard family-tree example: 'father(X,Y) :- male(X), parent(X,Y).'
 - have them take a crack at 'grandfather', w/ a partner.
 - talk/reflect about how this is declarative programming
   (just saying 'prolog searches for all solutions', without saying more);
 - a recursive rule: 'ancestor'.
 - have them take a crack at writing with a partner:
   - 'father*' (generalized grandfather; call 'ancestor')
   - 'sameLastName' (or, 'sameYChromosone'): check for male-only lineage
 - briefly show a tracing of the search (w/o worrying 'bout the search alg)
 - talk/reflect about how you can view parameters as input or output params.
 - facts *are* just rules w/o variables.

If time:
 - singleton variables; using '_' for 'don't-care'
 - an example on processing a list: I do some, they do some:
       removeOnce( Target, Data, Result )   (search)
       contains(Target, Data)               (search)
       isAllEvens(Data)                     (search)
       filterEvens(Data,Result)             (filter)
       squareEach(Data,Result)              (map)
       sum(Data,Total)                      (fold)
 - talk/reflect about matching of sub-lists, in variables.  Write 'third'.
   (how cool is that?!
    Cool enough that other languages copied it: e.g.  http://www.radford.edu/itec380/2009fall-ibarland/Lectures/matching.ss )


(Myself, I prefer avoiding or at least downplaying arithmetic, in the first lecture.  I do that after talking about the order of rules, which I also usually avoid /don't-get-to on the first day.)

homeinfolecturesexamshwsarchive


©2009, Ian Barland, Radford University
Last modified 2009.Nov.16 (Mon)
Please mail any suggestions
(incl. typos, broken links)
to iba�rlandrad�ford.edu
Powered by PLT Scheme