Funarg problem

In computer science, the funarg problem (function argument problem) refers to the difficulty in implementing first-class functions (functions as first-class objects) in programming language implementations so as to use stack-based memory allocation of the functions.

The difficulty only arises if the body of a nested function refers directly (i.e., not by argument passing) to identifiers defined in the environment in which the function is defined, but not in the environment of the function call.[1] A standard resolution is either to forbid such references or to create closures.[2]

There are two subtly different versions of the funarg problem. The upwards funarg problem arises from returning (or otherwise transmitting "upwards") a function from a function call. The downwards funarg problem arises from passing a function as a parameter to another function call.

  1. ^ The function of FUNCTION in LISP or why the FUNARG problem should be called the environment problem, by Joel Moses, MIT Project MAC memo AI-199, MAC-M-428, June 1970 (15 pp.).
  2. ^ A proposed solution to the FUNARG problem, by Erik Sandewall, in: ACM SIGSAM Bulletin 17 (Jan. 1971), pp. 29–42.

© MMXXIII Rich X Search. We shall prevail. All rights reserved. Rich X Search