POLA fetch

From Erights

Revision as of 16:35, 12 April 2008 by Kevin Reid (Talk | contribs)
Jump to: navigation, search

to fetch(key, absentThunk)

The fetch/2 protocol for collections does not obey POLA:

  • The collection gets access to the value of absentThunk.
  • The collection may invoke absentThunk and yet return something else.
  • The collection may invoke absentThunk more than once, or after fetch returns.

Proposals

  • Make the second argument usually an ejector. Ejectors do not return values and are robust against being invoked multiple times; if some other sort of object is being used, its author is more likely to consider the multiple invocation issue. If we do this, then utilities should be provided for default-value behavior. --Kevin Reid 11:25, 12 April 2008 (CDT)
Personal tools
more tools