"例行"的技术定义是什么?

FER*_*ITA 22 definition routines

我正在研究lisp语言(做lisp例程)并且在一般情况下我知道什么是例程,但在技术背景下我可以谈论它,因为我现在开始学习例程.那么,常规的真正定义是什么?(我已经"搜索"了这个,但没有找到任何东西)

小智 31

术语例程源自子例程,子例程是BASIC等语言中更常见的术语,其中实际创建SUB例程.(BASIC实际上在SUBroutine和FUNCTION之间有区别,但不过......)

来自维基百科条目:

在计算机科学中,子程序(也称为程序,函数,程序,方法或子程序)是执行特定任务并且相对独立于其余代码的较大程序中的代码的一部分.

正如名称"子程序"所暗示的那样,子程序的行为与用作较大程序或其他子程序中的一个步骤的计算机程序的行为方式大致相同.子程序经常被编码,以便可以在程序的单次执行期间(包括从其他子程序)中多次和/或从几个地方开始("调用"),然后分支返回(返回)到下一个指令之后.子程序的任务完成后"调用".

不同的语言/环境/时代具有不同的生态系统,因此描述相同的一般概念的术语不同.我一般只使用术语函数(或方法在"面向对象"的环境)这些天.

快乐的编码.


为了好玩,我有社区维基.下面的列表有望涵盖在给定语言中使用哪个术语(正确)(被广泛接受)来表示例行程序.非正式例程用于下面所有语言的上下文中,因此除非是使用的事实术语,否则应该省略它.您可以根据需要随意添加,更正和注释.

  • C - 功能
  • Java - 方法.虽然经常使用函数,但术语函数不会出现Java语言规范中.
  • C# - 方法和功能.在规范中,函数指的是函数对象和匿名函数.它们与方法不同,方法是类型(类或结构)的成员.还要考虑代表们.
  • JavaScript - 函数或方法.方法是通过对象的属性访问的函数.
  • Haskell - 功能.这是接受的术语.
  • Scala - 函数或方法.方法如果def类型成员,函数是一等值.
  • BASIC - 功能或子程序.子例程不返回值.支持按引用调用.
  • FORTRAN - 功能或子程序.子例程不返回值.支持按引用调用.
  • LISP - 功能.DEFUN - > DEfineFUNction,所有表单都是有效的表达式.还要考虑,它们本身不是函数,但可以说是例程.
  • VHDL - 子程序:功能和程序.程序没有回报价值.
  • SmallTalk - 方法
  • Python - 方法
  • Ruby - 方法(经常与函数互换?lambdas/Procs可能被认为是不同的?)
  • Perl - 函数和子例程.声明一个函数/ SUBroutine只有一种形式,因此返回值没有区别.使用方法(对于对象绑定函数)似乎不如其他语言普遍.
  • Pascal - 程序和功能
  • Ada - 程序和功能