# User:Kevin Reid/E tasks

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.

## Simple

- 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

- 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

- 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

- 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

## User interaction (unspecified type)

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

## Graphics

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

### Using Basic bitmap storage

- 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

## Mathematics

- 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

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

### Numerics

- 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

## Small projects

- 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

- 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

## Argue with

## Needs a ... to be done well

### Reflection toolkit

### User-defined exceptions

### Parser library

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

### Iter/accum/stream tools

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

### Vector type

### Matrix type

### Complex type

### Rational type

### Calendar

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

### Stream IO

#### Console input

- 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

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

### Operating system interfaces

- 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

### FFI

- 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

### Protocol/language implementations

#### HTTP client

#### XML

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

### Miscellaneous

- 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

- 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

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

## Notable omits

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

## Completed

## To classify

Insert new tasks here.