I know what an applicative Functor is, but I've been reading papers recently that refer to other applicative things, particularly purely applicative data structures.The trouble is, I'm not sure precisely what applicative means in this context, and Google has so far failed me. I can get a general English (ie useless) definition of applicative, but as soon as I add computer science to the search all I get is definitions of computer science.I have a vague sense that this relates to keeping them pesky effects in their place, but I could use a precise definition.I found this - http://foldoc.org/applicative - but I'm not sure applicative language == functional language really helps.
What precisely does Applicative mean in computer science?
terminology;computer science
The best general definition I can think of is respects the principle of extensionality.An applicative functor given equal structures produces equal structures. Contrast with a generative functor, which produces a fresh structure each time---that is, the equality of structures depends on where and/or when they were produced.An applicative data structure is one where the information is represented by how the data structure is put together, rather than external things like memory locations. This sense of applicative requires a certain perspective, common in programming language semantics, that separates values from the store (an abstraction of mutable memory). For algebraic data types, extensionality equates two values of the same type iff they were produced by the same constructor applied to the same arguments. The upshot is that mutation and object identity are forbidden.There's also another usage: applicative order of evaluation. I'm not sure that use is related to the others.