Call by value vs Call by Name vs Call by need