📜  函数式编程和逻辑式编程的区别

📅  最后修改于: 2021-09-14 02:46:39             🧑  作者: Mango

编程范式是一种使用某种编程语言解决问题的方法,或者我们也可以说它是一种使用我们可用的工具和技术按照某种方法解决问题的方法。有很多已知的编程语言,但所有这些语言在实现时都需要遵循一些策略,并且这种方法/策略是范式。除了各种编程语言之外,还有很多范式可以满足每个需求。它们的讨论如下:

函数式编程 是一种编程范式,其中一切都在函数的帮助下完成,并使用函数作为其基本构建块。在其中,我们只是尝试以纯数学函数的风格绑定每一个东西。程序通常是在更高级别编写的,因此更容易理解。

逻辑编程是一种编程范式,它使用逻辑电路来控制有关系统内问题的事实和规则的表示或表达方式。其中,逻辑用于表示知识,推理用于操作知识。它告诉模型如何完成一个目标,而不是要完成什么目标。

现在让我们在了解它们的基础知识后,再了解它们之间的主要主要区别。差异以表格形式显示如下:

Functional Programming

Logical Programming

It is totally based on functions. It is totally based on formal logic.  
In this programming paradigm, program statements usually express or represent facts and rules related to problems within a system of formal logic.    In this programming paradigm, programs are constructed by applying and composing functions.  
These are specially designed to manage and handle symbolic computation and list processing applications.   These are specially designed for fault diagnosis, natural language processing, planning, and machine learning.
Its main aim is to reduce side effects that are accomplished by isolating them from the rest of the software code. Its main aim is to allow machines to reason because it is very useful for representing knowledge.  
Some languages used in functional programming include Clojure, Wolfram Language, Erland, OCaml, etc.  Some languages used for logic programming include Absys, Cycl, Alice, ALF (Algebraic logic functional programming language), etc.
It reduces code redundancy, improves modularity, solves complex problems, increases maintainability, etc.   It is data-driven, array-oriented, used to express knowledge, etc.  
It usually supports the functional programming paradigm.   It usually supports the logic programming paradigm.  
Testing is much easier as compared to logical programming.   Testing is comparatively more difficult as compared to functional programming.  
It simply uses functions. It simply uses predicates. Here, the predicate is not a function i.e., it does not have a return value.