Рассмотрены основные результаты как в теоретической части, так и в части практического применения, накопленные к настоящему времени в области функционального и логического программирования. Показано, что оба эти подхода, относящиеся к парадигме декларативного программирования, позволяют получить новые возможности в части трансформации и автоматического синтеза программ, доказательства свойств программ, частичных вычислений и др. Описаны области, в которых применение данных подходов имеет преимущества по сравнению с операторным программированием. Практические аспекты функционального программирования изучаются на примере языков Haskell - лучшей современной реализации функциональной парадигмы. В теоретическом обосновании приведены наиболее важные (для данных целей) результаты лямбда-исчисления и комбинаторной логики. Представлена наиболее "продвинутая" практическая реализация идеи логического программирования: язык Пролог. Даны его детальное описание и приемы программирования. Основное внимание уделено таким областям применения Пролога, как программирование баз данных, синтаксический анализ, реализация переборного и эвристического поиска, задачи искусственного интеллекта, в том числе обработки нечетких данных, программирование в ограничениях (Constraint Lodic Programming). Подробно описаны теоретические основы логического программирования (метод резолюций, теорема Робинсона и др.). Для студентов учреждений высшего профессионального образования.