Both Scheme and J allow a functional approach to data abstraction which allows data abstractions to be separated from actual representation of abstract data types. This approach provides an interface which defines software layers. A J example of an abstract data type of stack is given.