几种不同的过程

#

在我所知道的语言中,都提供了函数,但在不同语言中函数的含义也有所区别。并且一般都只提供一种含义。在erlang中函数是确定的,一旦输入确定了其对应的输出也是唯一确定的。而在C等过程式、面向对象的编程语言中,函数是代表一个过程,是若干语句的集合。那么为何不干脆把他们分开,分别实现呢?

  1. 函数(function)
    函数的输入值一旦确定了,其输出值也就确定了,不在乎过程,只关心输入与输出。因此函数具有不可变性。得益于不可变性,函数可以利用缓存技术加快处理速度。一个函数的作用域应当只存在于函数内部,函数不可对函数的外部发生修改(不能调用任务或是方法,也不能使用可变的外部变量)。因此函数的优势在于用于产生数据

不可变

缓存

无副作用

  1. 任务(task)
    任务定义了一系列语句的调用顺序。任务包含条件执行体。条件就是完成任务所需的一个或多个输入数据。执行体就是任务的功能实现。任务是异步的,只关心任务的输入,而不在乎什么时候执行。任务之间是顺序无关,只要任务的条件满足,任务就会执行。在多线程编程中应该会有大作用。
  2. 方法(method)
    这个比较传统了。方法不在乎输入或者输出,方法关心的是语句执行的过程。方法确保每条语句的正确执行。

坚持原创技术分享,您的支持是我前进的动力!