This document summarizes logical programming languages and functional programming languages. For logical programming languages, it notes they are declarative languages that implement computation's logic rather than mechanics. While well-suited for representing data structures and complex ideas, they have disadvantages like poor support for state variables and arithmetic. Functional programming languages are based on functions as building blocks. They can lead to fewer bugs due to immutable variables and pure functions, but can also require more time and memory and not be suitable for all types of problems. The document contrasts the two by comparing their bases, aims, applications, and testing difficulties.