回答

6

我不知道什麼是「評估策略」,但Perl子程序調用僅供參考。

sub change { 
    $_[0] = 10; 
} 

$x = 5; 
change($x); 
print $x; # prints "10" 
change(0); # raises "Modification of a read-only value attempted" error 
+0

只需在這裏輸入一個真正的查詢......這是通過值/引用傳遞的想法,這取決於程序設計語言的內部組織或其對程序員的看法。我問這是因爲大多數人說,Java模擬呼叫參考http://stackoverflow.com/questions/40480/is-java-pass-by-reference-or-pass-by-value和http:// www .javaworld.com/article/2077424/learn-java/does-java-pass-by-reference-or-pass-by-value.html 。但是從編程的角度來看,它看起來像是通過引用來呼叫。同樣的方式,我們可以確定,perl不使用val後面的調用? – SamGhatak 2017-01-08 18:30:36

0

Brainfuck怎麼樣?

+0

很好,可能很好,但你將不得不提供一些證據。我不知道所有的語言。 – 2010-05-26 15:15:59

+1

它沒有功能,因此它的功能只能通過引用。 :-P另外,它是完整的。 – 2010-05-26 15:17:14

1

VB(預.net)和VBA & VBS 默認到的ByRef雖然它可以調用/確定該子或功能時被重寫。

0

FORTRAN確實;那麼,在諸如引用傳遞之類的概念之前,人們可能會說它使用了傳遞地址;一個FORTRAN功能,如:

INTEGER FUNCTION MULTIPLY_TWO_INTS(A, B) 
INTEGER A, B 
MULTIPLY_BY_TWO_INTS = A * B 
RETURN 

將有一個C風格的原型:

extern int MULTIPLY_TWO_INTS(int *A, int *B); 

,你可以通過類似稱之爲:

int result, a = 1, b = 100; 

result = MULTIPLY_TWO_INTS(&a, &b); 

另一個例子是做語言不知道函數參數,但使用堆棧。一個例子就是Forth及其派生類,其中一個函數可以按照需要更改變量空間(堆棧),修改現有元素以及添加/刪除元素。 「原型的意見」,在第四平時看起來像

(argument list -- return value list) 

,這意味着該函數接受/處理一定的,不一定是恆定的,數量的參數和返回,再次,不一定是恆定的,一些元素。即您可以使用一個函數,該函數將N作爲參數,並返回N元素 - 如果您願意,可以預分配數組。

+0

這沒有證明通過引用。在你提供的例子中,'MULTIPLY_TWO_INTS'必須修改'A'或'B',然後我們必須在調用之後看到調用者的版本'A'或'B'已經改變。 – jpmc26 2016-06-03 22:48:01

相關問題