Logical and Functional Programming

Units I- PROPOSITIONS AND PREDICATES: Evaluation of constant propositions, Evaluation of proposition in a state. Precedence rules for operators, Tautologies, Propositions a sets of states and Transforming English to propositional form. Introduction to first-order predicate logic, Quantifiers and Reasoning.
Units II- LOGIC PROGRAMMING USING PROLOG: Constants, Goals and Clauses, Facts,Rules, Semantics, Rules and Conjunction, Rules and Disjunction, Search strategy, Queries.
Units III- ADVANCED LOGIC PROGRAMMING USING PROLOG: – Unification ,Recursion, Lists, Cut operator, and Sorting. Data structures, Text strings, Searching state space, Operators and their precedence, and Parsing in Prolog.
Units IV- FUNCTIONAL PROGRAMMING: Introduction to lambda calculus-Syntax and semantics, Computability and correctness, Lazy and Eager Evaluation Strategies, comparison of functional and imperative languages.
Units V- FUNCTIONAL PROGRAMMING USING HASKELL: Introduction, lists, User-defined data types, type classes, and arrays in Haskell. Input/Ouput in Haskell – type classes IO and Monad, Simple applications/programs in Haskell.