В Fortran есть два стандартных способа вернуть результат из функции. Первый заключается в присвоении возвращаемого значения функции имени функции.
function foo()
integer :: foo
foo = 10
end function foo
Вторая форма, стандартизированная в Fortran 90, представляет собой переменную «результат».
function foo result(res)
integer :: res
res = 10
end function foo
Вызов любой формы функции возвращает значение 10. Мой вопрос: каково было обоснование комитета Fortran 90 для введения переменных результата? Они стандартизировали обычную практику? Или они позволяли программам быть более модульными, не привязывая имя функции к результату функции. Например, во второй версии foo()
имя функции foo()
можно было изменить на bar()
, и при вызове функция по-прежнему работала должным образом.
Впрочем, я могу ошибаться. Кто-нибудь знает, каково было фактическое обоснование введения переменных результата?