В Fortran существует явная разница между функцией и подпрограммой: функции возвращают одно значение, подпрограммы возвращают значение no. Это вводит каскад различий между ними. Одним из примеров является вызывающая семантика: вы можете вызывать функцию так же, как и на других языках, но для вызова подпрограммы вы должны сначала выпустить оператор call
.Нужны ли нам дополнительные подпрограммы?
С добавлением указателей и типов данных в Fortran95, как представляется, нет никаких технических ограничений при создании любой подпрограммы функции и сохранении подпрограмм только для наследия. Функции могут возвращать нуль (вы просто возвращаете целое число «ложь»), одно или несколько значений (например, вы можете вернуть указатель на выделенный экземпляр типа, например, C++ STL Pair).
Я не прав? Должны ли мы по-прежнему нуждаться в подпрограммах в программировании Fortran из-за некоторой функции, которой нет подпрограмм, а функции нет?
Нет, мы не делаем; мы не делаем _need_ do i = 1 .. петли на языках, которые делают while ..., либо. –
Я думаю, что этот вопрос будет работать лучше на programers.stackexchange.com, так как он очень субъективен. –
@ Давид: Прочтите мой ответ для не субъективного ответа на не-субъективный вопрос. –