Contents


    Courses using Prolog

    Comp Sci at CSUSB: [ ../../cs320/ ] [ ../../cs620/ ] [ ../../cs556/ ] [ ../../cs656/ ]

    CS320 Laboratories

    [ lab1.html ] [ lab2.html ] [ lab3.html ]

    Resources

    Frequently Asked Questions about Prolog: [ prolog.FAQ ]

    Informal Introduction: [ ../../samples/prolog.summary.html ] [ intro.prolog.html ]

    Formal Description: [ ../../samples/prolog.html ] [ ../../samples/prolog.glossary.html ] [ ../../samples/prolog.syntax.html ] [ ../../samples/prolog.predicates.html ] [ ../../samples/prolog.semantics.html ]

    Archived Mail about Prolog [ mbox ] [ prolog.mbox ] [ strings.mbox ]

    Examples

    Prolog Sites on the World Wide Web: [ ../../samples/prolog.www.sites.html ]

    Finding the absolute value of a number in two different ways: [ abs.plg ]

    An Old-fashioned Science Fiction Story Generator [ story.plg ]

    The paradox of who shaves the barber: [ barber.plg ]

    Binary Search algorithm: [ binary.plg ]

    A way to search all pairs of numbers etc. How Cantor enumerated all the fractions: [ cantor.plg ]

    Simulated parallel computations: [ cobegin.plg ]

    The Problem of the Coffeecan: [ coffeecan.plg ]

    Chemical Knowledge Base... with errors to be corrected: [ chem.plg ]

    An incorrect model of the Computer Science Department: [ compsci.plg ]

    Generating Ice Cream Cones: [ cones.plg ]

    Counting Icecream cones [ coney.plg ]

    Solving a Cryptarithm Problem [ crptarth.plg ]

    Calculating factorials: [ factorial.plg ] [ factorl2.plg ]

    The Hailsone or Collatz Sequence [ collatz.plg ]

    Family values? [ pg84.plg ] [ family2.plg ] [ family.plg ] [ wirth.plg ] [ wirth2.plg ]

    Doing Functions the Logical Way: [ functions.plg ] [ experiment.plg ]

    Trying to pick Lotto numbers at random: [ lotto.plg ] [ lotto93.plg ]

    Finding Magic Squares: [ magic.plg ] [ magic2.plg ] [ magic3.plg ] [ magic4.plg ]

    Murder at the Metropolitan Club: [ metro1.plg ] [ metro2.plg ]

    A Simpler 16><16 Suduko puzzle solve [ sudoku4.plg ]

    Harry Potter and the Puzzle of the Potions [ Potions.htm ] [ potion1.plg ]

    Calendar Info in Prolog [ months.plg ] [ year.plg ] [ calendar.plg ]

    Example from Sebesta [ pg84.plg ]

    Generating a rather bad Poem [ poem.plg ]

    Attempt (failed) to Pretty-print Prolog Programs [ pp.plg ]

    Quicksort in Prolog [ qsort.plg ] [ qsort2.plg ]

    Simulating Random Access Memory [ ram.plg ] [ ram.old.plg ]

    Rational Arithmetic - Fractions in Prolog [ rational.plg ]

    Computing Risks: [ risk.plg ]

    Samples of Logic Problems: [ sample1.plg ] [ sample2.plg ] [ sample3.plg ]

    Generating Sets from predicates: [ setof.plg ]

    Sum of squares... and other stats. [ ss.plg ] [ sum_squares.plg ] [ summer1.plg ]

    Picking the best deal in insurance [ minimum.plg ] (using assert and retract) [ minimum2.plg ] (using bagof and min_list)

    T Van Le's Techniques [ t.van_le.plg ]

    An idea for a Software Engineering Tool: [ tool.plg ]

    Prolog doe the Graduate Record Exam: [ GRE10.plg ] [ GRE8.plg ]

    List handling in Prolog [ append.plg ] [ merge.plg ] [ memberp.plg ] [ lists.plg ] [ lists2.plg ] [ unique.plg ]

    Defining an operator [ le.plg ]

    Simulating English sentences in Prolog [ english.plg ]

    For-loops in Prolog???? [ for.plg ] [ for.complex.plg ] [ for.example.plg ]

    Simplified Changes to data base: delta(Old, New, WhereWhatever) [ delta.plg ]

    Context Free Grammars in Prolog: [ grammar.plg ]

    A silly example... [ happy.plg ] [ happy2.plg ] [ happy3.plg ]

    Integers: [ int.plg ]

    A Joke (of sorts) [ joke.plg ]

    Logic in Prolog [ logic.plg ] [ truthtable.plg ] [ bool.plg ] [ liars.plg ] [ KNS.plg ] [ KNS2.plg ]

    Maximization in Prolog [ maxi.plg ]

    Recording positions and movements in Prolog [ movement.plg ]

    Mult? [ mult.plg ]

    Odd things: [ odd.plg ] [ odd2.plg ] [ oddity.plg ]

    Peano's Model of the Numbers [ peano.plg ]

    Prime numbers in Prolog [ primes.plg ] [ primes2.plg ] [ sieve.plg ]

    Random Numbers [ nurandom.plg ] [ random.plg ]

    The Shortest Path Problem [ shortest_path.plg ]

    Paths thru a Maze [ maze.plg ]

    ADTS [ sets.plg ] [ stack.plg ]

    Preorders? [ tree.plg ]

    Parsing type descriptions: [ types.plg ]

    BRMC? [ brmc.plg ]

    A solution to the four color problem: [ color_map.plg ]

    The Monkey, the Banana, etc [ monkey.plg ]

    The doctor/eliza program (does not work!) [ eliza.plg ]

    Post correspondence systems: [ emil.post.plg ]

    The Minesweeper Game [ mine.plg ] [ mine2.plg ]

    The Mutilated Chess Board Problem [ chess.plg ]

    Techniques

    If_then_else: use backtracking: [ abs.plg ]

    Loops - use recursion: To Be announced

    Loops - use repeat/fail/etc [ cones.plg ] [ coney.plg ] [ factorl2.plg ] [ for.complex.plg ] [ for.plg ] [ setof.plg ] [ sum_squares.plg ] [ mine.plg ] [ mine2.plg ]

    Generating all permutations by using select [ perm.plg ]

    Generate and Test Pattern [ bool.plg ] [ coney.plg ] [ mine.plg ] [ sample1.plg ] [ sample2.plg ] [ sample3.plg ] [ liars.plg ] [ KNS.plg ] [ KNS2.plg ] [ magic.plg ] [ magic2.plg ] [ magic3.plg ] [ magic4.plg ] [ Potions.htm ] [ potion1.plg ] [ potion0.plg ] [ potions.plg ]

    Assert & Retract: [ delta.plg ] [ maze.plg ] [ maxi.plg ] [ coney.plg ] [ ram.plg ] [ ram.old.plg ] [ lotto93.plg ] [ movement.plg ] [ mine.plg ] [ minimum.plg ]

    Randomness: [ lotto93.plg ] [ story.plg ]

    The Cut(!) operator: [ back.plg ]

    Operators: [ english.plg ] [ le.plg ]

    The setof predicate: [ setof.plg ]

    Sample of use of bagof: [ minimum2.plg ] (using bagof and min_list)

    Syntax and Semantics of Languages [ ../cs620/lab/action.plg ] [ ../cs620/lab/algeb.plg ] [ ../cs620/lab/anbncn.plg ] [ ../cs620/lab/context.plg ] [ ../cs620/lab/ds.plg ] [ ../cs620/lab/dsd.plg ] [ ../cs620/lab/fixed.plg ] [ ../cs620/lab/functions.plg ] [ ../cs620/lab/hollerith.plg ] [ ../cs620/lab/modules.plg ] [ ../cs620/lab/normal.old.plg ] [ ../cs620/lab/normal.plg ] [ ../cs620/lab/pp.plg ] [ ../cs620/lab/pp2.plg ] [ ../cs620/lab/scan.plg ] [ ../cs620/lab/scan2.plg ] [ ../cs620/lab/scanparse.plg ] [ ../cs620/lab/secd.plg ] [ ../cs620/lab/sos.plg ] [ ../cs620/lab/t.plg ] [ ../cs620/lab/translate.plg ] [ ../cs620/lab/ttt.plg ]

End