| Objects, messages (OO, Smalltalk, Alan Kay) Function (lambda calculus, FP) String (shell, tcl, perl) Process, actor (the actor model, Carl Hewitt, Erlang) Value, immutable, pure (pure FP) Thunk, lazy (lazy FP, Haskell) File (Unix, plan 9) List (lisp) Expression (lisp macros, see linked essay) Copyable (languages without linear type systems, ie. almost everything but rust; tbf some languages have a move/copy distinction even if they don't enforce it with a type system) Serializable, transmissible over the network (anything that tries to do transparent RPC or state saving, smalltalk images, object databases, X windows) Sortable (anything with a generic sort function that doesn't take a comparator or similar; ditto generic collection types like maps or sets that don't take a comparator or hash function) goto (see Dijkstra's "goto considered harmful" essay) call/cc (Scheme; see also recent work on algebraic effects and delimited continuations) (I'm the author) |