2013-04-05 20 views
9

Adaの "手続き"と "関数"の違いは誰にも分かりますか?Ada関数と手続き

+2

これは基本的な質問であり、Adaの参照によって回答できます。 –

+0

@KeithThompson:返事をありがとう。残念ながら、私は24時間何でもできる:)。 –

+0

まあ、関数は値を返し、プロシージャは値を返しません。例えば、パスカル言語は同じです。 C言語のような言語は関数のみを持ち、void値を返すことによって手続きを行うことができます。ところで、24時間は、そのようなものを学ぶのに十分な方法です:) – Archie

答えて

13

Adaの言語は、他の命令的なC言語のような言語と比べてあまり変わらない。構文は非常に奇妙に見え、異なるステートメントで圧倒されるかもしれませんが、これは主に非常に豊富な静的タイピングシステムと、言語によって直接提供される機能(例えばタスクなど)、サイドライブラリとして提供される他の言語によるものです。

ほとんどのC言語とは異なり、Adaは手続き型ルーチンと機能型ルーチンを区別します。この意味で、関数は、引数を取って(または何も返さずに)値を返す数学関数と非常によく似ているため、式で使用されます。プロシージャーは値を戻さず、式では使用できません。パスカル言語は、関数と手続きを同じように区別します。 C言語のような言語は、式の外で使用できる関数を持つことを選択しました(戻り値はこの場合無視されます)。または、プロシージャのように動作するvoid値を返します。

+0

Adaプロシージャは変数(状態の変更)を変更できますか? – MNRC