This is Kevin Reid's *personal* classification of tasks not implemented in E, or just poorly done in E, by what kind of problem they are, or what kind of library/language work should come first. The presence of items on this list is managed by Task list updater.e (but is not automatically run); the classification is done manually.

## Contents

- 1 Simple
- 2 Language/library features
- 3 Algorithmic
- 4 GUI
- 5 User interaction (unspecified type)
- 6 Graphics
- 7 Mathematics
- 8 Operating system interfaces
- 9 Small projects
- 10 Large projects
- 11 Rosetta Code processing
- 12 Argue with
- 13 Needs a ... to be done well
- 13.1 Reflection toolkit
- 13.2 User-defined exceptions
- 13.3 Parser library
- 13.4 Iter/accum/stream tools
- 13.5 Vector type
- 13.6 Matrix type
- 13.7 Complex type
- 13.8 Rational type
- 13.9 Calendar
- 13.10 Stream IO
- 13.11 Operating system interfaces
- 13.12 FFI
- 13.13 Database
- 13.14 Protocol/language implementations
- 13.15 Miscellaneous

- 14 Needs improvement
- 15 Special cases
- 16 Notable omits
- 17 Completed
- 18 To classify

## Simple[edit]

- Doubly-linked list/Traversal
- Evaluate binomial coefficients
- Hailstone sequence
- Hamming numbers
- Map range
- Range expansion
- Strip block comments
- Strip comments from a string

## Language/library features[edit]

- Anonymous recursion
- Extreme floating point values
- Flow-control structures
- JSON (2 ways: terml and deJSONKit)
- Literals/Floating point
- Narcissist
- Parallel calculations
- Random number generator (device)
- Random number generator (included)
- Reverse a string
- String concatenation

## Algorithmic[edit]

- Arena storage pool (Covers both implementing an allocator, and using it to allocate physical memory... Do the first part perhaps.)
- Best shuffle
- Catmull–Clark subdivision surface
- Combinations with repetitions
- Closest-pair problem
- Equilibrium index
- Find common directory path
- Find the missing permutation
- Knapsack problem/0-1
- Knapsack problem/Bounded
- Knapsack problem/Continuous
- Long multiplication
- Longest common subsequence
- Maze generation
- Maze solving
- N-queens problem
- Non-continuous subsequences
- Permutations
- Ray-casting algorithm
- Sorting algorithms/Bead sort
- Sorting algorithms/Comb sort
- Sorting algorithms/Pancake sort
- Sorting algorithms/Radix sort
- Sorting algorithms/Stooge sort

## GUI[edit]

- GUI component interaction
- GUI enabling/disabling of controls
- Keyboard macros
- Minesweeper game
- Mouse position
- Window management
- Play recorded sounds (classified here because we can borrow Java facilities in the EoJ case)
- User input/Graphical
- Wireworld

### Reflective[edit]

## User interaction (unspecified type)[edit]

- Guess the number
- Guess the number/With feedback
- Guess the number/With feedback (player)
- Number reversal game

## Graphics[edit]

- Brownian tree
- Constrained random points on a circle
- Dragon curve
- Fractal tree
- Plot coordinate pairs
- Image noise

### Using Basic bitmap storage[edit]

- Bitmap/Bézier curves/Cubic
- Bitmap/Bézier curves/Quadratic
- Image convolution
- Bitmap/Histogram
- Grayscale image
- Median filter
- Bitmap/Midpoint circle algorithm
- Bitmap/PPM conversion through a pipe
- Bitmap/Read a PPM file
- Bitmap/Read an image through a pipe
- Xiaolin Wu's line algorithm

### Other pixel processing[edit]

## Mathematics[edit]

- Formal power series (similar to Polynomial long division)
- Averages/Median (research better algorithms)
- Deconvolution/1D
- Deconvolution/2D+
- Hofstadter-Conway $10,000 sequence
- Simple quaternion type and operations
- Truncatable primes

### Integers[edit]

- Factors of an integer
- Lucas-Lehmer test
- Multiplicative order
- Factors of a Mersenne number
- Seven-sided dice from five-sided dice

### Numerics[edit]

- Gamma function
- Polynomial regression
- Multiple regression
- Roots of a quadratic function
- Roots of a function
- Sequence of non-squares
- Verify distribution uniformity/Naive
- Verify distribution uniformity/Chi-squared test

## Operating system interfaces[edit]

## Small projects[edit]

- 24 game
- Forest fire
- Four bit adder
- Horizontal sundial calculations
- Inverted index
- Luhn test of credit card numbers
- Permutation test
- Price fraction
- Problem of Apollonius
- Soundex
- Stem-and-leaf plot
- Sutherland-Hodgman polygon clipping
- Variable-length quantity

## Large projects[edit]

- 24 game/Solve
- Bulls and cows/Player
- Execute a Markov algorithm
- Execute SNUSP
- Go Fish
- Huffman coding
- LZW compression
- MD5/Implementation
- Monty Hall problem
- Number names
- Pascal's triangle/Puzzle
- RCRPG
- Roman numerals
- Stable marriage problem
- Sudoku
- Text processing/1
- Text processing/2
- Thiele's interpolation formula

## Rosetta Code processing[edit]

## Argue with[edit]

## Needs a ... to be done well[edit]

### Reflection toolkit[edit]

### User-defined exceptions[edit]

### Parser library[edit]

- Arithmetic evaluation ought to use one even if it's not technically required. (improve)

### Iter/accum/stream tools[edit]

- Multiple distinct objects (improve: needs better answer than accumulator)
- ...and many other tasks to improve

### Vector type[edit]

### Matrix type[edit]

### Complex type[edit]

### Rational type[edit]

### Calendar[edit]

- Day of the week
- Date manipulation
- Date format
- Discordian date
- Five weekends
- Holidays related to Easter
- Leap year

### Stream IO[edit]

#### Console input[edit]

- A+B
- Keyboard Input/Determine if a key has been pressed at the terminal
- Keyboard Input/Flush the keyboard buffer
- Keyboard Input/Obtain a Y or N response
- Menu
- Input loop
- Create a two-dimensional array at runtime
- User input/Text

#### Sockets[edit]

- Chat server
- Echo server
- Sockets
- Hostname (improve: done by shell command, but should be done internally)

### Operating system interfaces[edit]

- Secure temporary file
- Fork
- Handle a signal
- Morse code — involves playing a sound
- Time a function (improve: done EoJ; needs cross-platform)
- Terminal control/Clear the screen
- Terminal control/Determine the height and width of the terminal window
- Terminal control/Moving the cursor to a specific location on the screen

#### Windows[edit]

### FFI[edit]

- Call a function in a shared library
- Call a foreign-language function
- Call a function from a foreign language
- OpenGL
- Host introspection (currently omitted)
- Create an object at a given address (currently omitted)

### Database[edit]

### Protocol/language implementations[edit]

#### HTTP client[edit]

#### XML[edit]

- XML/Output
- XML/Input
- XML/XPath (improve: needs revisiting when E-XML is better)

### Miscellaneous[edit]

- Formatted numeric output
- Write float arrays to a text file (same as Formatted Output)
- Regular expressions (need agreement on regexp substitution and regexp search-as-opposed-to-match)
- Sort stability (Need to find/write the documentation on this)
- Stack traces (cross-impl agreement)

## Needs improvement[edit]

- Dynamic variable names (improve: Once environment-
`with`

is builtin, show using it together with`interp.setTopScope`

) - E-on-Java is flagged for something
- Non-decimal radices/Input — Don't use __ methods
- Optional parameters — map-patterns
- Power set — show dynamically constructed set
- Stair-climbing puzzle

## Special cases[edit]

- Compare sorting algorithms' performance — waiting on Shell sort, Plot x, y arrays, Write float arrays to a text file, Polynomial regression

## Notable omits[edit]

- Rendezvous (Hard to define what this
*means*in E. Intervat perhaps? Is currently marked omit.)

## Completed[edit]

## To classify[edit]

Insert new tasks here.