Questa
Questa(from "Queue and stack ") is an Esoteric data structure by User:ChuckEsoteric08, that is similar to the Deque, but you can push elements only on the top.
Operations
The Questa's abstract nature conditions a representation by its basic functionality.
Basic Operations
There are four basic operations in Questa:
| Operation | Function | 
|---|---|
| PUSH | Push element on top of the Questa | 
| POP1 | Pop element from top of the Questa | 
| POP2 | Pop element from bottom of the Questa | 
| SWAP | Swaps element from bottom with element from top | 
The Questa ADT
The Questa as an abstract data type (ADT) shall be specified in the following:
PUSH(x : any) : void — Pushes the element x to the top of the Questa and returns no value.
POP1() : any — Returns the Questa's top element. If the Questa is empty, an error will be signaled.
POP2() : any — Returns the Questa's bottom element. If the Questa is empty, an error will be signaled.
SWAP() : boolean — Exchanges the position of the Questa's top and bottom elements. If the Questa contains one or more items a Boolean value of true will be returned; for an empty Questa false is produced.
Questa-complete
Questa-based languages can be called "Questa-complete" if:
- The data capacity is unbounded
- All of the basic commands listed above are implemented
Questa-based languages
Four Questa-based languages are currently in existence:
| Language | Questa-completeness | 
|---|---|
| Quests | Yes | 
| Miw | No | 
| Toki pona li pona | Yes | 
Implementations
- Common Lisp implementation of the Questa data structure. Please note that some assumptions have been introduced in order to rectify the lacunae.