Nested function call: Difference between revisions

From XPUB & Lens-Based wiki
No edit summary
No edit summary
 
(One intermediate revision by the same user not shown)
Line 7: Line 7:
In fact what happens is:
In fact what happens is:


* baz() gets called, and it's output * send as input to:
* baz() gets called, and it's output * is used as input to:
* bar( * ) which gets call, and it's output ** sent as input to:
* bar( * ) which gets call, and it's output ** sent as input to:
* foo ( ** )
* foo ( ** )


Using temporary variables, the whole process could also be written:
Using temporary variables, the chain of events could also be written:


  x = baz()
  x = baz()
Line 17: Line 17:
  z = foo(y)
  z = foo(y)


But since it's more compact, programmers tend to write:
Note that although written differently (in a more linear fashion), the resulting program does exactly the same thing. Since it's more compact, and doesn't introduce temporary variables, programmers tend to write:


  result = foo(bar(baz()))
  result = foo(bar(baz()))
Which often is more readable since you use less variable names, thus reducing ''cognitive overload''.

Latest revision as of 07:01, 15 May 2020

A convention used in many programming languages (python, javascript, C, liquidsoap)

When you see:

foo(bar(baz()))

In fact what happens is:

  • baz() gets called, and it's output * is used as input to:
  • bar( * ) which gets call, and it's output ** sent as input to:
  • foo ( ** )

Using temporary variables, the chain of events could also be written:

x = baz()
y = bar(x)
z = foo(y)

Note that although written differently (in a more linear fashion), the resulting program does exactly the same thing. Since it's more compact, and doesn't introduce temporary variables, programmers tend to write:

result = foo(bar(baz()))