Если я ошибаюсь, в Фортране нет способа написать функцию или подпрограмму с произвольным числом аргументов (более известное как вариационная функция).Каковы функции MAX и MIN, реализованные в Fortran без поддержки вариационных функций?
Например: RESULT = FUNC(A1, A2 [, A3 [, ...]])
Я знаю, я могу создать дополнительные аргументы, но число аргументов конечно и должны быть вручную объявлены, один за другим, в определении функции.
Итак, как же тогда Fortran компилятор реализует, MAX
или MIN
, которые являются, по сути,
RESULT = MAX(A1, A2 [, A3 [, ...]])
Что особенно озадачивает, что эти VARIADIC MAX
и MIN
функции, evidently, часть стандарт Fortran 77. Поэтому всякая возможность для реализации этих функций должна была быть доступна в 1977 году.
Да, вы и я не можем написать истинную вариационную функцию, но я также прочитал этот вопрос как «почему бы не встроенные функции Fortran всегда следовать правилам пользовательских процедур?». По существу: зачем? То есть компилятор Fortran не ограничен, чтобы реализовать 'мин' так, как мы. Он может делать все, что ему нравится (возможно, как сама программа C), пока он получает ответ, требуемый от него. – francescalus
Да, ваше альтернативное чтение вопроса - это то, что тоже перешло мне в голову, и я пришел к тому же выводу, что и вы: «По существу: зачем они?». Но тем не менее я все еще расстраиваюсь. – EMiller