私は(LISPルーチンを行うために)LISP言語を勉強していて、一般的な文脈ではルーチンとは何かを知っていますが、技術的な文脈では、今ルーチンを学び始めているので、それについて話すことができます。それで、ルーチンの本当の定義は何ですか? (私はすでにこれを「グーグル」しましたが、何も見つかりませんでした)
routineという用語は、 subroutine に由来します。これは、BASICのような言語でより一般的な用語です。実際にサブルーチンを作成します。 (BASICには、実際にはSUBroutineとFUNCTIONの違いがありましたが、それでも...)
ウィキペディアのエントリから:
コンピュータサイエンスでは、サブルーチン(プロシージャ、関数、ルーチン、メソッド、またはサブプログラムとも呼ばれます)は、より大きなプログラム内のコードの一部です。特定のタスクを実行し、残りのコードから比較的独立しています。
「サブプログラム」という名前が示すように、サブルーチンは、より大きなプログラムまたは別のサブプログラムの1つのステップとして使用されるコンピュータープログラムとほぼ同じように動作します。サブルーチンは、他のサブルーチンからも含めて、プログラムの1回の実行中に複数回、および/または複数の場所から開始(「呼び出」)できるようにコーディングされ、その後、サブルーチンのタスクが完了したら、「呼び出し」ます。
異なる言語/環境/時代は異なるエコシステムを持っているため、同じ一般的な概念を説明するための異なる用語があります。私は最近、function(またはmethod「OOP」環境では)という用語のみを使用するのが一般的です。
ハッピーコーディング。
楽しみのために、私はコミュニティWikiを作成しました。以下のリストは、ルーチンを意味する特定の言語で使用するのに「正しい」(広く受け入れられている)用語を網羅していることを願っています。非公式にルーチンは、以下のすべての言語のコンテキストで使用されるため、使用される事実上の用語でない限り、省略してください。必要に応じて、自由に追加、修正、および注釈を付けてください。
def
型のメンバーの場合、関数はファーストクラスの値です。LISPに固有の技術的な定義がないため、技術的な定義を見つけることができません。寄席の外にある「ルーチン」は、関数の単なる別名です。私がLISPでフルタイムでプログラミングしてから何年も経ちましたが、誰もその用語を正式な方法で使用したり、一般的に使用したりすることはありませんでした。 「関数」、「マクロ」、「フォーム」について話しました。誰かが「ああ、パイの中のリンゴの数を計算するルーチンがあります」と言った場合、それは完全に非公式でした。