Mecanismos de Pasaje de Parametros
Mecanismos de Pasaje de Parametros
Mecanismos de Pasaje de Parametros
Parametros
Por
referencia
Por value
Por valor-resultado
Por nombre
Por necesidad
Cambion
afuera
Aliasing: puede que sea dificil de razonar sobre
programas, cuando el modelo no es declarativo
Procedimiento Swap
No
El
Pro y Contras de
por-referencia vs por-valor
Modularidad
Eficiencia
Los
declare A = 3
proc {P X} X:=4 end
in {P A}
A end
declare
A=3
B=4
proc {P X}
A:= 4
X end
in {P A+B}
using cells
declare
proc {Sqr A}
{A}:=@{A} * @{A}
end
local C={NewCell 5}
{Sqr fun {$} C end}
{Browse @C}
end
Call by need
Variation
declare
A=3
B=4
fun {P X}
A:= X
X end
in {P A+B}
Discussion
Is
Call by value?
Call by reference?
Call by valueresult?
Call by name?
Call by need?
2
4
6
7
8
10
12
16
20
Call by value? 4
Call by reference? 8
Call by value-result? 7
Call by name? 20
Call by need? 16