|
|
1
17
如果您搜索comp.lang.fortran档案,您会发现有关函数语义的讨论。IIRC结果是,标准中没有明确规定哪些是有副作用的函数,哪些是不允许的。 例如,编译器是否可以优化 x=foo(args)+foo(args)
x=2*foo(参数) 或者再举一个例子,考虑一下
一般来说,一些专家的建议是只在纯函数的情况下使用函数,否则使用子例程。而且,这也是我自己的建议。 |
|
|
2
5
我不认为子程序会去任何地方。大多数其他语言允许方法返回值或不返回值。我看不出为什么这是件坏事。任何人都不应该改变任何事情。 单是Legacy就说,子例程将像Fortran一样持久。只要有Fortran,编写一个执行操作且不返回任何内容的方法就没有问题。 更新: 你为什么说“麻烦”?有什么大不了的?我不同意在适当的情况下使用子例程是一个“麻烦”的观点。
|
|
|
3
1
你又在用fortran编写C程序,是吗?;-) 在我看来,是的,我们是。因为如果仅仅是因为一个原因的话——它们更容易理解,而且比函数更广泛地使用。
|
|
|
4
0
如果我理解正确的话,Stefano并不反对子程序的想法。反对他们的意见是无稽之谈。他反对对子程序/函数使用不同的样式。 Fortran是命令式编程语言。更确切地说,它是一种过程式编程语言(更确切地说,它是结构化编程语言)。
该语言可能只有一种声明过程的样式。我同意你的看法,斯特凡诺。 |
|
|
5
-2
我必须回答自己这个问题的事实是疯狂的,但事实就是这样。 这种差异源于这样一个事实,即在Fortran中不能“像在其他语言中一样调用函数”。在C语言中,你可以调用一个整数函数而不需要赋值,例如
这意味着通过返回一个伪整数来“模拟”一个void函数仍然不允许在没有接收器变量的情况下调用。
在Fortran中
|