No, you just implemented an elaborate form of "call by reference". "Call by name" is quite something else, and if you think about it you'll realize that swapping "by name" would mean that the names have to be reassociated with different objects, which is contrary to the meaning of names in this context. I haven't seen call-by- name included in any language since Algol.