Glossary

Abstract Data Type

A more formal definition of the familiar idea that types should be defined by abstractions with hidden implementations. An abstract data type is defined only in terms of allowed operations, i.e., without specifying fields, since they are part of the implementation. Abstract data types may or may not be immutable. Representative examples include maps, queues, and stacks, where multiple implementations are possible (including mutable and immutable, as long as all state-changing operations are defined to return a reference to the possibly new instance). Contrast with algebraic data type, where only a well-defined set of public subtypes are allowed.

Abstraction

The outwardly visible state, state transformations, and other operations supported by a type. This is separate from the encapsulated implementation (fields and methods) of the abstraction. Scala traits and abstract classes are often used to define abstractions and optionally implement them. Concrete types provide complete implementations.

ACID

A desired property of database transactions. They should support atomicity, consistency, isolation, and durability. See [ACID] for more details.

Actor

An autonomous sender and receiver of messages in the actor model of concurrency.

Actor Model of Concurrency

A concurrency model where autonomous actors coordinate work by exchanging messages. An actor’s messages are stored in a mailbox until the actor processes them.

Agile and Agile Methods

An umbrella term for several lightweight ...

Get Functional Programming for Java Developers now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.