Introduction (1A) Young Won Lim 9/12/13
|
|
- Hilary Osborne
- 5 years ago
- Views:
Transcription
1 Introduction (1A)
2 Copyright (c) 2013 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". Please send corrections (or suggestions) to youngwlim@hotmail.com. This document was produced by using OpenOffice.
3 Goal Execution mortal(x) :- man(x). man(socrates).?- mortal(socrates). a rule a fact a query mortal(socrates) mortal(x) :- man(x). man(socrates). an initial goal try to match a first rule try to match a first fact socrates a variable instantitation X an atom mortal(socrates) :- man(socrates). man(socrates) mortal(x) :- man(x). man(socrates). extend the variable instantiation a new goal try to match a first rule try to match a first fact Introduction 3
4 Select Select (Element, List, Rest), ( List Element ) Rest If Element is in List, then remove Element from List and return Rest permutation([], []). permutation(list, [Element Result]) :- bind Element [Head Tail] select(element, List, Rest), permutation(rest, Result). Introduction 4
5 Permutation Recursive Call permutation([], []). permutation(list, [Element Result] ) :- select(element, List, Rest), permutation(rest, Result). bind Rest Introduction 5
6 Permutation Backtracking Permutation([], []). permutation(list, [Element Result]) :- select(element, List, Rest), permutation(rest, Result). X = [1, 2, 3] ; X = [1, 3, 2] ; X = [2, 1, 3] ; X = [2, 3, 1] ; X = [3, 1, 2] ; X = [3, 2, 1] ; No P([1,2,3], X). E=1 E=2 E=3 [1,2,3] [2,1,3] [3,1.2] [1,3,2] [2,3,1] [3,2,1] P([2,3], X). P([1,3], X). P([1,2], X). E=2 E=3 E=1 E=3 E=1 E=2 [2,3] [3,2] [1,3] [3,1] [1,2] [2,1] P([3], X). P([2], X). P([3], X). P([1], X). P([2], X). P([1], X). [3] [2] [3] [1] [2] [1] Introduction 6
7 Remove Duplicates remove_duplicates([], []). bind Head, Tail remove_duplicates([head Tail], Result) :- member(head, Tail), remove_duplicates(tail, Result). remove_duplicates([head Tail], [Head Result]) :- bind Head, Tail remove_duplicates(tail, Result). Introduction 7
8 remove_duplicates Backtracking remove_duplicates([], []). bind Head, Tail remove_duplicates([head Tail], Result) :- member(head, Tail), List = [b, c, a] ; (alternative List = [b, b, c, a] ; List = [a, b, c, a] ; List = [a, b, b, c, a] ; backtracking) remove_duplicates(tail, Result). No remove_duplicates([head Tail], [Head Result]) :- bind Head, Tail remove_duplicates(tail, Result). rd([h, T], List) List=[List] List=[H, List] rd([t], List) rd([t], List) Introduction 8
9 Backtracking (1) rd([a, b, b, c, a], List) List=[b,c,a] rd([a, b, b, c, a], List) List=[b,b,c,a] rd([b, b, c, a], List) List=[b,c,a] rd([b, b, c, a], List) List=[b,b,c,a] rd([b, c, a], List) List=[b,c,a] List=[b,b,c,a] rd([b, c, a], List) List=[b,c,a] rd([c, a], List) List=[c,a] rd([a], List) List=[b,c,a] rd([c, a], List) List=[c,a] rd([a], List) List=[a] rd([ ], List) List=[List] rd([h, T], List) List=[H, List] List=[a] rd([ ], List) rd([t], List) rd([t], List) Introduction 9
10 Backtracking (2) List=[a,b,c,a] rd([a, b, b, c, a], List) List=[a,b,c,a] rd([b, b, c, a], List) List=[a,b,b,c,a] rd([a, b, b, c, a], List) List=[a,b,b,c,a] rd([b, b, c, a], List) List=[b,c,a] List=[b.b,c,a] rd([b, c, a], List) rd([b, c, a], List) List=[b,c,a] rd([c, a], List) List=[c,a] rd([a], List) List=[b,c,a] rd([c, a], List) List=[c,a] rd([a], List) List=[a] rd([ ], List) List=[List] rd([h, T], List) List=[H, List] List=[a] rd([ ], List) rd([t], List) rd([t], List) Introduction 10
11 Backtracking (3) [b,c] [b] [ ] rd([b, c, a], List) rd([b, c, a], List) rd([b, c, a], List) List=[b,c] rd([c, a], List) List=[c] rd([a], List) List=[b] rd([c, a], List) List=[ ] rd([a], List) rd([a], List) rd([c, a], List) List=[ ] List=[ ] List=[ ] rd([ ], List) rd([ ], List) List=[ ] rd([ ], List) List=[ ] In the first solution, the first branch were rejected and the second were selected. No more branches are left to try for the alternative solutions. List=[List] rd([t], List) rd([h, T], List) List=[H, List] rd([t], List) In the first solution, the first branch were selected and the second are left to try for the alternative solutions. List=[List] rd([t], List) rd([h, T], List) List=[H, List] rd([t], List) During backtracking, however, also all other branches of the search tree will be visited. Even if the first rule would match, sometimes the second one will be picked instead and the duplicate head will remain in the list. Introduction 11
12 Cut! : cut, the predefined predicate can be anywhere in a rule s body can be a part of a sequence of subgoals in a query The subgoal! is always succeed backtracking into subgoals placed before the cut inside the same rule body is not possible anymore Whenever a cut is encountered in a rule s body, all choices made between the time that rule s head has been matched with the parent goal and the time the cut is passed are final, i.e. any choicepoints are being discarded. Introduction 12
13 A Cut Example bride(girl) :- beautiful(girl),!, intelligent(girl). Bound variable before the cut are final Cannot change the first choice Considered as True regardless of the possible failure of the subgoals after the cut?- bride(x). No The first choice X=a is final cannot try other alternatives bride(x) X=a beautiful(a) intelligent(a) beautiful(b) intelligent(b) beautiful(z) intelligent(z) No match after the cut Result: No Without the cut Result: X=b Introduction 13
14 remove_duplicates with a cut remove_duplicates([], []). bind Head, Tail remove_duplicates([head Tail], Result) :- member(head, Tail),!, When this part is matched, that match is final Therefore, during backtracking the second rule will not be tried List = [b, c, a] ; No remove_duplicates(tail, Result). remove_duplicates([head Tail], [Head Result]) :- bind Head, Tail remove_duplicates(tail, Result). Introduction 14
15 Member member(x, [X T]). bind Head & Tail Returns Yes if X is equal to Head member(x, [H T]) :- bind Head & Tail Else try the recursive calls member(x, T) Introduction 15
16 Recursing Down Lists a2b([], []). a2b([a Ta], [b Tb]) :-?- a2b([a, a, a], [b, b, b]). Yes?- a2b([a, 8, 9], [b, b, b]). No a2b(ta, Tb) Introduction 16
17 Append Append([], L, L). Append( [H T], L2, [H L3]) :- append(t, L2, L3). Introduction 17
18 Naïve Reversing with Append Naiverev ([], []). Naiverev ([H T], R):- Naiverev (T, RevT), append(revt, [H], R). Introduction 18
19 Reversing with an Accumulator accrev( [H T], A, R ):- accrev( T, [H A], R). accrev( [], A, A ). Introduction 19
20 References [1] U. Endriss, Lecture Notes : Introduction to Prolog Programming [2] Learn Prolog Now!
Problem Solving and Search
Problem Solving and Search Ulle Endriss Institute for Logic, Language and Computation University of Amsterdam [ http://www.illc.uva.nl/~ulle/teaching/pss/ ] Ulle Endriss 1 Table of Contents Lecture 1:
More informationOperators (2A) Young Won Lim 10/2/13
Operators (2A) Copyright (c) 2013 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version
More informationOperators (2A) Young Won Lim 10/5/13
Operators (2A) Copyright (c) 2013 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version
More informationResolution (14A) Young W. Lim 6/14/14
Copyright (c) 2013-2014. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free
More information3 Lists. List Operations (I)
3 Lists. List Operations (I) The list is the simplest yet the most useful Prolog structure. A list is a sequence of any number of objects. Example 3.1: L = [1, 2, 3], R = [a, b, c], T = [john, marry, tim,
More informationDerivation Tree (6A) Young W. Lim 1/21/14
Copyright (c) 2013. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software
More informationAccessibility (1A) Young Won Lim 8/22/13
Accessibility (1A) Copyright (c) 2011-2013 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any
More informationStructure (1A) Component
Component Copyright (c) 2012 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version
More informationBinary Search Tree (3A) Young Won Lim 6/2/18
Binary Search Tree (A) /2/1 Copyright (c) 2015-201 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2
More informationBinary Search Tree (2A) Young Won Lim 5/17/18
Binary Search Tree (2A) Copyright (c) 2015-2018 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or
More informationFirst Order Logic Semantics (3A) Young W. Lim 6/2/17
First Order Logic (3A) Young W. Lim Copyright (c) 2016-2017 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version
More informationFunctions (4A) Young Won Lim 5/8/17
Functions (4A) Copyright (c) 2015 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version
More informationFirst Order Logic Semantics (3A) Young W. Lim 6/1/17
First Order Logic Semantics (3A) Young W. Lim Copyright (c) 2016-2017 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License,
More informationA Sudoku Solver Pruning (3A)
A Sudoku Solver Pruning (3A) Richard Bird Implementation Copyright (c) 2016 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation
More informationCS 321 Programming Languages and Compilers. Prolog
CS 321 Programming Languages and Compilers Prolog Prolog PROgramming LOGic Algorithm = Logic + Control Logic programming deals with computing relations rather than functions. To understand Prolog one must
More informationTiny CPU Data Path (2B) Young Won Lim 5/2/16
Tiny CPU Data Path (2B) Copyright (c) 24-26 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version.2 or any later
More informationRAM (1A) Young Won Lim 11/12/13
RAM (1A) Young Won Lim 11/12/13 opyright (c) 2011-2013 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version
More informationFunctions (4A) Young Won Lim 3/16/18
Functions (4A) Copyright (c) 2015 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version
More informationProlog. Intro to Logic Programming
Prolog Logic programming (declarative) Goals and subgoals Prolog Syntax Database example rule order, subgoal order, argument invertibility, backtracking model of execution, negation by failure, variables
More informationBinary Search Tree (3A) Young Won Lim 6/4/18
Binary Search Tree (A) /4/1 Copyright (c) 2015-201 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2
More informationBinary Search Tree (3A) Young Won Lim 6/6/18
Binary Search Tree (A) //1 Copyright (c) 2015-201 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2
More informationTopic B: Backtracking and Lists
Topic B: Backtracking and Lists 1 Recommended Exercises and Readings From Programming in Prolog (5 th Ed.) Readings: Chapter 3 2 Searching for the Answer In order for a Prolog program to report the correct
More informationMemory Arrays (4H) Gate Level Design. Young Won Lim 3/15/16
Arrays (4H) Gate Level Design Young Won Lim 3/15/16 Copyright (c) 2011, 2016 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation
More informationMonad (1A) Young Won Lim 6/9/17
Copyright (c) 2016-2017 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published
More informationImplementação de Linguagens 2016/2017
Implementação de Linguagens Ricardo Rocha DCC-FCUP, Universidade do Porto ricroc @ dcc.fc.up.pt Ricardo Rocha DCC-FCUP 1 Logic Programming Logic programming languages, together with functional programming
More informationLecture 11: Feb. 10, 2016
CS323: AI (Hands on with Prolog) Spring 2016 Lecturer: K.R. Chowdhary Lecture 11: Feb. 10, 2016 : Professor of CS (VF) Disclaimer: These notes have not been subjected to the usual scrutiny reserved for
More informationIntroduction Prolog Activity! Prolog. Dr. Mattox Beckman. University of Illinois at Urbana-Champaign Department of Computer Science
Prolog Dr. Mattox Beckman University of Illinois at Urbana-Champaign Department of Computer Science Outline Introduction Objectives Logic Prolog Prolog Queries Builtin Structures Activity! Activity Objectives
More informationProlog - 3 Prolog search trees + traces
Prolog - 3 Prolog search trees + traces 1 Review member(a, [A B]). member(a, [B C]) :- member (A,C). goal-oriented semantics: can get value assignment for goal member(a,[b C]) by showing truth of subgoal
More informationThe Complexity of Algorithms (3A) Young Won Lim 4/3/18
Copyright (c) 2015-2018 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published
More informationBacktracking. Ch. 5 Controlling Backtracking. Backtracking. Backtracking Example. Example. Example
Backtracking Ch. 5 Controlling Backtracking Backtracking is the attempt to (re)satisfy a goal by exploring alternative ways to satisfy it. Chronological backtracking is backtracking in which we always
More informationCAP 5602 Summer, Lesson 5: Lists. The topics 1. updating a counter 2. the list structure 3. some useful built-in predicates for lists
CAP 5602 Summer, 20 Lesson 5: Lists The topics. updating a counter 2. the list structure 3. some useful built-in predicates for lists. Updating a counter Let us try to implement the increse the counter
More informationChapter 16. Logic Programming. Topics. Unification. Resolution. Prolog s Search Strategy. Prolog s Search Strategy
Topics Chapter 16 Logic Programming Summary (resolution, unification, Prolog search strategy ) Disjoint goals The cut operator Negative goals Predicate fail Debugger / tracer Lists 2 Resolution Resolution
More informationFirst-Order Logic (FOL)
First-Order Logic (FOL) FOL consists of the following parts: Objects/terms Quantified variables Predicates Logical connectives Implication Objects/Terms FOL is a formal system that allows us to reason
More informationA Sudoku Solver (1A) Richard Bird Implementation. Young Won Lim 11/15/16
A Sudoku Solver (1A) Richard Bird Implementation Copyright (c) 2016 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License,
More informationMonad Background (3A) Young Won Lim 11/20/17
Copyright (c) 2016-2017 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published
More informationMonad (1A) Young Won Lim 6/21/17
Copyright (c) 2016-2017 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published
More informationsimplicity hides complexity flow of control, negation, cut, 2 nd order programming, tail recursion procedural and declarative semantics and & or
simplicity hides complexity flow of control, negation, cut, 2 nd order programming, tail recursion simple and/or composition of goals hides complex control patterns not easily represented by traditional
More informationClass (1A) Young Won Lim 9/8/14
Class (1A) Copyright (c) 2011-2013 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version
More informationPointers (1A) Young Won Lim 11/1/17
Pointers (1A) Copyright (c) 2010-2017 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later
More information10. Logic Programming With Prolog
Copyright (C) R.A. van Engelen, FSU Department of Computer Science, 2000 10. Logic Programming With Overview Logic Programming Logic Programming Logic programming is a form of declarative programming A
More informationCS 360: Programming Languages Lecture 10: Logic Programming with Prolog
CS 360: Programming Languages Lecture 10: Logic Programming with Prolog Geoffrey Mainland Drexel University Section 1 Administrivia Midterm Tuesday Midterm is Tuesday, February 14! Study guide is on the
More informationCOP4020 Programming Languages. Logical programming with Prolog Prof. Xin Yuan
COP4020 Programming Languages Logical programming with Prolog Prof. Xin Yuan Topics Logic programming with Prolog COP4020 Spring 2013 2 Definitions: Prolog Terms Terms are symbolic expressions that are
More informationIntroduction. CSc 372. Comparative Programming Languages. 22 : Prolog Lists. Department of Computer Science University of Arizona.
CSc 372 Comparative Programming Languages 22 : Prolog Lists Introduction Department of Computer Science University of Arizona collberg@gmail.com Copyright c 2011 Christian Collberg Christian Collberg Prolog
More informationsimplicity hides complexity flow of control, negation, cut, 2 nd order programming, tail recursion procedural and declarative semantics and & or
simplicity hides complexity flow of control, negation, cut, 2 nd order programming, tail recursion simple and/or composition of goals hides complex control patterns not easily represented by traditional
More informationRecursion, Structures, and Lists
Recursion, Structures, and Lists Artificial Intelligence Programming in Prolog Lecturer: Tim Smith Lecture 4 04/10/04 30/09/04 AIPP Lecture 3: Recursion, Structures, and Lists 1 The central ideas of Prolog
More informationSide Effects (3A) Young Won Lim 1/13/18
Side Effects (3A) Copyright (c) 2016-2018 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later
More informationAlgorithms (7A) Young Won Lim 4/10/17
Algorithms (7A) Copyright (c) 2017 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version
More informationThis lecture covers: Prolog s execution strategy explained more precisely. Revision of the elementary Prolog data types
This lecture covers: Prolog s execution strategy explained more precisely The execution strategy has been presented as simply placing all matching clauses onto the stack. In fact, Prolog is slightly more
More informationApplications of Pointers (1A) Young Won Lim 12/26/17
Applications of (1A) Copyright (c) 2010-2017 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any
More informationIntroduction to Logic Programming in Prolog 1 / 39
Introduction to Logic Programming in Prolog 1 / 39 Outline Programming paradigms Logic programming basics Introduction to Prolog Predicates, queries, and rules Understanding the query engine Goal search
More informationOverview (1A) Young Won Lim 9/14/17
Overview (1A) Copyright (c) 2009-2017 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later
More informationAlgorithms (7A) Young Won Lim 4/18/17
Algorithms (7A) Copyright (c) 2017 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version
More informationOverview (1A) Young Won Lim 9/9/17
Overview (1A) Copyright (c) 2009-2017 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later
More informationProgramming Paradigms
PP 2017/18 Unit 9 Prolog: Accumulators, Order of Goals/Clauses, and the Cut 1/38 Programming Paradigms Unit 9 Prolog: Accumulators, Order of Goals/Clauses, and the Cut J. Gamper Free University of Bozen-Bolzano
More informationLecture 4: January 12, 2015
32002: AI (First Order Predicate Logic, Interpretation and Inferences) Spring 2015 Lecturer: K.R. Chowdhary Lecture 4: January 12, 2015 : Professor of CS (VF) Disclaimer: These notes have not been subjected
More informationProlog. (Programming in Logic) Prepared by: Tanay Kumar Saha
Prolog (Programming in Logic) Prepared by: Tanay Kumar Saha Motivation for Learning Prolog Follow prolog news: http://www.swi-prolog.org/news SWI-Prolog Used For Satellite Anomaly Detection Fast cars and
More informationPointers (1A) Young Won Lim 1/5/18
Pointers (1A) Copyright (c) 2010-2017 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later
More informationPointers (1A) Young Won Lim 1/9/18
Pointers (1A) Copyright (c) 2010-2017 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later
More informationMonad (1A) Young Won Lim 6/26/17
Copyright (c) 2016-2017 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published
More informationHaskell Overview III (3A) Young Won Lim 10/4/16
(3A) Copyright (c) 2016 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published
More informationOverview (1A) Young Won Lim 9/25/17
Overview (1A) Copyright (c) 2009-2017 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later
More informationEulerian Cycle (2A) Young Won Lim 4/26/18
Eulerian Cycle (2A) Copyright (c) 2015 2018 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any
More informationApplications of Arrays (1A) Young Won Lim 2/11/17
Copyright (c) 2009-2017 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published
More informationArithmetic (12A) Young W. Lim 4/9/14
Copyright (c) 2013-2014. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free
More informationFPGA Configuration (1C) Young Won Lim 12/1/13
(1C) Young Won Lim 12/1/13 Copyright (c) 2011-2013 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2
More informationCS 381: Programming Language Fundamentals
CS 381: Programming Language Fundamentals Summer 2017 Introduction to Logic Programming in Prolog Aug 2, 2017 Outline Programming paradigms Logic programming basics Introduction to Prolog Predicates, queries
More informationFunction Overview (1A) Young Won Lim 10/23/17
Function Overview (1A) Copyright (c) 2010 2017 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or
More informationChapter 5. Pure PROLOG. Foundations of Logic Programming
Chapter 5 1 Outline vs. logic programming Lists in Adding Arithmetics to Adding the Cut to 2 Syntax of Pure Prolog p(x,a) :- q(x), r(x,yi). p(x, a) q(x), r(x,y i ) % Comment Ambivalent syntax: p(p(a,b),
More informationAlgorithms Bubble Sort (1B) Young Won Lim 4/5/18
Algorithms Bubble Sort (1B) Young Won Lim 4/5/18 Copyright (c) 2017 2018 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation
More informationMemory (1A) Young Won Lim 9/7/17
(1A) Copyright (c) 21-26 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published
More informationA second life for Prolog
A second life for Prolog Algorithm = Logic + Control Jan Wielemaker J.Wielemaker@cwi.nl 1 Overview Algorithm = Logic + Control Limitations of SLD Beyond SLD 2 Algorithm = Logic + Control In Logic programming
More informationPrinciples of Programming Languages Topic: Functional Programming Professor L. Thorne McCarty Spring 2003
Principles of Programming Languages Topic: Functional Programming Professor L. Thorne McCarty Spring 2003 CS 314, LS, LTM: Functional Programming 1 Scheme A program is an expression to be evaluated (in
More informationProlog Socket Programming (9A) Young W. Lim 3/18/14
Prolog Copyright (c) 2013-2014. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by
More informationAdders (A) Young Won Lim 10/7/13
Adders (A) /7/3 Copyright (c) 2-23 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version.2 or any later version
More informationOverview. Declarative Languages. operation of del. Deleting an element from a list. functions using del. inserting elements with del
Overview Declarative Languages D7012E: Arithmetic and Backtracking Fredrik Bengtsson Some standard functions Operators Arithmetic The eight queens problem Controlling backtracking cut Deleting an element
More informationLecture Notes An Introduction to Prolog Programming
Institute for Logic, Language and Computation Lecture Notes An Introduction to Prolog Programming Ulle Endriss Universiteit van Amsterdam c by Ulle Endriss, University of Amsterdam (Email: ulle.endriss@uva.nl)
More informationLogic Programming. Efficiency Issues. Temur Kutsia
Logic Programming Efficiency Issues Temur Kutsia Research Institute for Symbolic Computation Johannes Kepler University of Linz, Austria kutsia@risc.uni-linz.ac.at Efficiency Issues in Prolog Narrow the
More informationApplications of Arrays (1A) Young Won Lim 3/15/17
Copyright (c) 2009-2017 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published
More informationMonad P1 : Several Monad Types (4A) Young Won Lim 2/13/19
Monad P1 : Several Copyright (c) 2016-2019 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any
More informationProlog-2 nd Lecture. Prolog Predicate - Box Model
Prolog-2 nd Lecture Tracing in Prolog Procedural interpretation of execution Box model of Prolog predicate rule How to follow a Prolog trace? Trees in Prolog use nested terms Unification Informally Formal
More informationLogic Programming (PLP 11) Prolog Imperative Control Flow: Backtracking, Cut, Fail, Not
Logic Programming (PLP 11) Prolog Imperative Control Flow: Backtracking, Cut, Fail, Not Carlos Varela Rennselaer Polytechnic Institute September 2, 2014 C. Varela 1 Backtracking Forward chaining goes from
More informationMonad (3A) Young Won Lim 8/9/17
Copyright (c) 2016-2017 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published
More informationLecture 21: Relational Programming II. November 15th, 2011
Lecture 21: Relational Programming II November 15th, 2011 Lecture Outline Relational Programming contd The Relational Model of Computation Programming with choice and Solve Search Strategies Relational
More informationCache Memory. Young Won Lim 5/31/16
Copyright (c) 2010-2016 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published
More informationIO Monad (3C) Young Won Lim 8/23/17
Copyright (c) 2016-2017 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published
More informationContent Addressable Memory (1A) Young Won Lim 6/1/16
Content Addressable Memory (1A) Copyright (c) 21-216 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2
More informationBackground Expressions (1D) Young Won Lim 7/7/18
Background Expressions (1D) Copyright (c) 2016-2018 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2
More informationLecture 9: A closer look at terms
Lecture 9: A closer look at terms Theory Introduce the == predicate Take a closer look at term structure Introduce strings in Prolog Introduce operators Exercises Exercises of LPN: 9.1, 9.2, 9.3, 9.4,
More informationCS 4700: Artificial Intelligence
CS 4700: Foundations of Artificial Intelligence Fall 2017 Instructor: Prof. Haym Hirsh Lecture 16 Cornell Cinema Thursday, April 13 7:00pm Friday, April 14 7:00pm Sunday, April 16 4:30pm Cornell Cinema
More informationSide Effects (3B) Young Won Lim 11/20/17
Side Effects (3B) Copyright (c) 2016-2017 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later
More informationPlanar Graph (7A) Young Won Lim 5/21/18
Planar Graph (7A) Copyright (c) 2015 2018 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later
More informationMonad Background (3A) Young Won Lim 11/8/17
Copyright (c) 2016-2017 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published
More informationMinimum Spanning Tree (5A) Young Won Lim 5/11/18
Minimum Spanning Tree (5A) Copyright (c) 2015 2018 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2
More informationHaskell Overview IV (4A) Young Won Lim 10/13/16
(4A) Copyright (c) 2016 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published
More informationSide Effects (3B) Young Won Lim 11/23/17
Side Effects (3B) Copyright (c) 2016-2017 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later
More informationBrief Introduction to Prolog
CSC384: Intro to Artificial Intelligence Brief Introduction to Prolog Prolog Programming for Artificial Intelligence by Ivan Bratko. Prolog is a language that is useful for doing symbolic and logic based
More informationSide Effects (3B) Young Won Lim 11/27/17
Side Effects (3B) Copyright (c) 2016-2017 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later
More informationState Monad (3D) Young Won Lim 8/31/17
Copyright (c) 2016-2017 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published
More informationApplications of Pointers (1A) Young Won Lim 4/24/18
(1A) Coyright (c) 2010-2018 Young W. Lim. Permission is granted to coy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version ublished
More informationProlog (cont d) Remark. Using multiple clauses. Intelligent Systems and HCI D7023E
Intelligent Systems and HCI D703E Lecture : More Prolog Paweł Pietrzak Prolog (cont d) 1 Remark The recent version of SWI- Prolog displays true and false rather than and no Using multiple clauses Different
More information