10 Haziran 2016 Cuma

CALL BY NAME VS CALL BY VALUE

from Coursera, principle in scala programming. Lecture 1.2. 

def test (x:Int, y: Int)= x*x

seklinde bir fonksiyonumuz olsun.Ve bu fonksiyonu call by value ve call by name ile calistirdigimizda gerceklesen adimlara bakalim.


test(2,3)

Call by value => 2 * 2 = 4
Call by name => 2 * 2 = 4

Yani ikisinde de ayni islemler gerceklesti.

test(2+6,12)

Call by value => 8 * 8 = 64
Call by name => (2 + 6) * (2 + 6) = 8 * (2 + 6) = 8 * 8 = 64

seklinde gerceklesir. Burada call value daha hizlidir.

test(5,6*7)

Call by value => test(5,42) => 5 * 5 = 25
Call by name => 5*5 =25

burda ise call by name daha hizlidir.

test(2+6,6*7)

Call by value => test(8,6*7) => test(8,42) => 8 * 8 = 64
Call by name => (2+6) * (2+6) => 8*(2+6) => 8 * 8 = 64



Hiç yorum yok:

Yorum Gönder