User:Kevin Reid/E tasks: Difference between revisions
Content added Content deleted
(updates) |
(update by script + manual) |
||
(45 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
This is [[User:Kevin Reid]]'s classification of [[ |
This is [[User:Kevin Reid|Kevin Reid]]'s ''personal'' classification of [[Reports:tasks not implemented in E|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|Task list updater.e]] (but is not automatically run); the classification is done manually. |
||
As of 16:05, 16 June 2009. When updating this list, consult [http://rosettacode.org/w/index.php?title=Template:Unimp_body_E&action=history the diffs] since then for what to add/remove. |
|||
<div style="-webkit-column-count: 3"> |
<div style="-webkit-column-count: 3"> |
||
==Simple== |
|||
==Should go ahead and do== |
|||
* [[Doubly-linked list/Traversal]] |
|||
===Simple=== |
|||
* [[Evaluate binomial coefficients]] |
|||
* [[Loop/Break]] |
|||
* [[Hailstone sequence]] |
|||
* [[Eval]] (except for the "how to bind a variable" bit but we already lost on that in [[Eval in environment]]) |
|||
* [[Hamming numbers]] |
|||
* [[Dynamic variable names]] (ditto) |
|||
* [[ |
* [[Map range]] |
||
* [[ |
* [[Range expansion]] |
||
* [[ |
* [[Strip block comments]] |
||
* [[Strip comments from a string]] |
|||
* [[Median]] |
|||
* [[Mode]] |
|||
==Language/library features== |
|||
===Problems=== |
|||
* [[ |
* [[Anonymous recursion]] |
||
* [[Extreme floating point values]] |
|||
* [[Anagrams]] |
|||
* [[ |
* [[Flow-control structures]] |
||
* [[JSON]] (2 ways: terml and deJSONKit) |
|||
* [[Prime decomposition]] |
|||
* [[ |
* [[Literals/Floating point]] |
||
* [[ |
* [[Narcissist]] |
||
* [[ |
* [[Parallel calculations]] |
||
* [[Random number generator (device)]] |
|||
* [[SEDOL]] |
|||
* [[Random number generator (included)]] |
|||
* [[Reverse a string]] |
|||
* [[String concatenation]] |
|||
==Algorithmic== |
|||
===Data structures=== |
|||
* [[Arena storage pool]] (Covers both implementing an allocator, and using it to allocate physical memory... Do the first part perhaps.) |
|||
* [[Formal Power Series]] |
|||
* [[ |
* [[Best shuffle]] |
||
* [[Catmull–Clark subdivision surface]] |
|||
* [[Singly-Linked List (traversal)]] |
|||
* [[Combinations with repetitions]] |
|||
* [[Closest-pair problem]] |
|||
===Algorithmic=== |
|||
* [[ |
* [[Equilibrium index]] |
||
* [[Find common directory path]] |
|||
* [[Cocktail Sort]] |
|||
* [[Find the missing permutation]] |
|||
* [[Gnome sort]] |
|||
* [[Knapsack |
* [[Knapsack problem/0-1]] |
||
* [[ |
* [[Knapsack problem/Bounded]] |
||
* [[ |
* [[Knapsack problem/Continuous]] |
||
* [[ |
* [[Long multiplication]] |
||
* [[ |
* [[Longest common subsequence]] |
||
* [[ |
* [[Maze generation]] |
||
* [[ |
* [[Maze solving]] |
||
* [[N-queens problem]] |
|||
* [[Point in polygon (ray casting algorithm)]] |
|||
* [[Non-continuous subsequences]] |
|||
* [[Permutations]] |
|||
==Type algebra/staticness== |
|||
* [[ |
* [[Ray-casting algorithm]] |
||
* [[Sorting algorithms/Bead sort]] |
|||
* [[Parametric Polymorphism]] |
|||
* [[Sorting algorithms/Comb sort]] |
|||
* [[Sorting algorithms/Pancake sort]] |
|||
==Object-oriented/inheritance== |
|||
* [[Sorting algorithms/Radix sort]] |
|||
* [[Inheritance]] |
|||
* [[Sorting algorithms/Stooge sort]] |
|||
==Concurrency== |
|||
* [[Rendezvous]] (Hard to define what this ''means'' in E. Intervat perhaps? Is currently marked omit.) |
|||
==Funky control flow== |
|||
* [[Amb]] |
|||
==Probably messy== |
|||
* [[Convert an integer into words]] |
|||
* [[Rot-13]] |
|||
==GUI== |
==GUI== |
||
* [[ |
* [[GUI component interaction]] |
||
* [[GUI enabling/disabling of controls]] |
|||
* [[Keyboard macros]] |
* [[Keyboard macros]] |
||
* [[ |
* [[Minesweeper game]] |
||
* [[Mouse position]] |
|||
* [[Window management]] |
* [[Window management]] |
||
* [[Play recorded sounds]] (classified here because we can borrow Java facilities in the EoJ case) |
* [[Play recorded sounds]] (classified here because we can borrow Java facilities in the EoJ case) |
||
* [[User input/Graphical]] |
|||
* [[Wireworld]] |
|||
===Reflective=== |
===Reflective=== |
||
* [[ |
* [[Color of a screen pixel]] |
||
* [[Simulate |
* [[Simulate input/Keyboard]] |
||
* [[Simulate |
* [[Simulate input/Mouse]] |
||
==User interaction (unspecified type)== |
|||
* [[Guess the number]] |
|||
* [[Guess the number/With feedback]] |
|||
* [[Guess the number/With feedback (player)]] |
|||
* [[Number reversal game]] |
|||
==Graphics== |
==Graphics== |
||
* [[ |
* [[Brownian tree]] |
||
* [[Constrained random points on a circle]] |
|||
* [[Cubic bezier curves]] |
|||
* [[Dragon curve]] |
* [[Dragon curve]] |
||
* [[ |
* [[Fractal tree]] |
||
* [[Plot |
* [[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=== |
|||
* [[Hough transform]] |
|||
==Numerics== |
|||
==Mathematics== |
|||
* [[Gamma function]] |
|||
* [[Formal power series]] (similar to [[Polynomial long division]]) |
|||
* [[Greatest common divisor]] |
|||
* [[Averages/Median]] (research better algorithms) |
|||
* [[Happy Number]] |
|||
* [[Deconvolution/1D]] |
|||
* [[Deconvolution/2D+]] |
|||
* [[Hofstadter-Conway $10,000 sequence]] |
|||
* [[Simple quaternion type and operations]] |
|||
* [[Truncatable primes]] |
|||
===Integers=== |
|||
* [[Factors of an integer]] |
|||
* [[Lucas-Lehmer test]] |
* [[Lucas-Lehmer test]] |
||
* [[Miller-Rabin test]] |
|||
* [[Multiplicative order]] |
* [[Multiplicative order]] |
||
* [[Factors of a Mersenne number]] |
|||
* [[Pascal's Triangle]] |
|||
* [[Seven-sided dice from five-sided dice]] |
|||
* [[Perfect Numbers]] |
|||
===Numerics=== |
|||
* [[Polynomial Fitting]] |
|||
* [[ |
* [[Gamma function]] |
||
* [[Polynomial regression]] |
|||
* [[Multiple regression]] |
|||
* [[Roots of a quadratic function]] |
|||
* [[Roots of a function]] |
* [[Roots of a function]] |
||
* [[Sequence of |
* [[Sequence of non-squares]] |
||
* [[Verify distribution uniformity/Naive]] |
|||
* [[Trial factoring of a Mersenne number]] |
|||
* [[Verify distribution uniformity/Chi-squared test]] |
|||
==Operating system interfaces== |
|||
* [[Globally replace text in several files]] |
|||
* [[Hello world/Line printer]] |
|||
==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== |
==Large projects== |
||
* [[ |
* [[24 game/Solve]] |
||
* [[ |
* [[Bulls and cows/Player]] |
||
* [[ |
* [[Execute a Markov algorithm]] |
||
* [[ |
* [[Execute SNUSP]] |
||
* [[ |
* [[Go Fish]] |
||
* [[ |
* [[Huffman coding]] |
||
* [[Huffman codes]] |
|||
* [[LZW compression]] |
* [[LZW compression]] |
||
* [[ |
* [[MD5/Implementation]] |
||
* [[ |
* [[Monty Hall problem]] |
||
* [[ |
* [[Number names]] |
||
* [[Pascal's triangle/Puzzle]] |
|||
* [[Sort most popular programming languages]] |
|||
* [[RCRPG]] |
|||
* [[Roman numerals]] |
|||
* [[Stable marriage problem]] |
|||
* [[Sudoku]] |
|||
* [[Text processing/1]] |
|||
* [[Text processing/2]] |
|||
* [[Thiele's interpolation formula]] |
|||
==Rosetta Code processing== |
|||
* [[Rosetta Code/Fix code tags]] |
|||
* [[Rosetta Code/Count examples]] |
|||
* [[Rosetta Code/Rank languages by popularity]] |
|||
==Argue with== |
==Argue with== |
||
* [[Determine if |
* [[Determine if only one instance is running]] |
||
* [[Max Licenses In Use]] |
|||
</div> |
|||
==Contortions== |
|||
---- |
|||
* [[Evens Sum To Even]] |
|||
* [[Man or boy test]] |
|||
---- |
|||
<div style="-webkit-column-count: 3"> |
|||
==Needs a ... to be done well== |
==Needs a ... to be done well== |
||
===Reflection toolkit=== |
===Reflection toolkit=== |
||
* [[ |
* [[Add a variable to a class instance at runtime]] |
||
===User-defined exceptions=== |
===User-defined exceptions=== |
||
* [[Exceptions |
* [[Exceptions/Catch an exception thrown in a nested call]] |
||
===Parser library=== |
===Parser library=== |
||
* [[Arithmetic evaluation]] ought to use one even if it's not technically required. (improve) |
|||
* [[Arithmetic Evaluator]] |
|||
===Iter/accum/stream tools=== |
===Iter/accum/stream tools=== |
||
* [[ |
* [[Multiple distinct objects]] (improve: needs better answer than accumulator) |
||
* ...and many other tasks to improve |
|||
=== |
===Vector type=== |
||
* [[ |
* [[Dot product]] |
||
* [[Flood fill]] |
|||
* [[Image convolution]] |
|||
* [[Image histogram]] |
|||
* [[Grayscale image]] |
|||
* [[Median filter]] |
|||
* [[Percentage of difference between 2 images]] |
|||
* [[PPM conversion through a pipe]] |
|||
* [[Read image file through a pipe]] |
|||
* [[Read ppm file]] |
|||
* [[Write ppm file]] |
|||
* [[Xiaolin Wu's line algorithm]] |
|||
===Matrix type=== |
===Matrix type=== |
||
* [[Matrix |
* [[Matrix transposition]] |
||
* [[Matrix |
* [[Matrix-exponentiation operator]] |
||
* [[Matrix multiplication]] |
* [[Matrix multiplication]] |
||
* [[Reduced row echelon form]] |
* [[Reduced row echelon form]] |
||
===Complex type=== |
===Complex type=== |
||
* [[Complex |
* [[Arithmetic/Complex]] |
||
* [[Mandelbrot set]] |
* [[Mandelbrot set]] |
||
* [[Roots of unity]] |
* [[Roots of unity]] |
||
===Rational type=== |
===Rational type=== |
||
* [[ |
* [[Arithmetic/Rational]] |
||
===Calendar=== |
===Calendar=== |
||
* [[ |
* [[Day of the week]] |
||
* [[Date |
* [[Date manipulation]] |
||
* [[Date format]] |
* [[Date format]] |
||
* [[Discordian date]] |
|||
* [[Five weekends]] |
|||
* [[Holidays related to Easter]] |
|||
* [[Leap year]] |
|||
===Stream IO=== |
===Stream IO=== |
||
* [[ |
* [[Bitwise IO]] |
||
====Console input==== |
====Console input==== |
||
* [[ |
* [[A+B]] |
||
* [[Keyboard Input/Determine if a key has been pressed at the terminal]] |
|||
* [[Basic input loop]] |
|||
* [[Keyboard Input/Flush the keyboard buffer]] |
|||
* [[Two-dimensional array (runtime)]] |
|||
* [[ |
* [[Keyboard Input/Obtain a Y or N response]] |
||
* [[Menu]] |
|||
* [[Input loop]] |
|||
* [[Create a two-dimensional array at runtime]] |
|||
* [[User input/Text]] |
|||
====Sockets==== |
====Sockets==== |
||
* [[ |
* [[Chat server]] |
||
* [[Echo server]] |
|||
* [[Sockets]] |
* [[Sockets]] |
||
* [[ |
* [[Hostname]] (improve: done by shell command, but should be done internally) |
||
===Operating system interfaces=== |
===Operating system interfaces=== |
||
* [[ |
* [[Secure temporary file]] |
||
* [[Fork |
* [[Fork]] |
||
* [[ |
* [[Handle a signal]] |
||
* [[Morse code]] — involves playing a sound |
|||
* [[Query Performance]] |
|||
* [[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==== |
|||
* [[Write to Windows event log]] |
|||
===FFI=== |
===FFI=== |
||
* [[Call function in shared library]] |
* [[Call a function in a shared library]] |
||
* [[Call a foreign-language function]] |
|||
* [[Call a function from a foreign language]] |
|||
* [[OpenGL]] |
* [[OpenGL]] |
||
* [[Host introspection]] (currently omitted) |
|||
* [[Machine Address]] |
|||
* [[Create an object at a given address]] (currently omitted) |
|||
===Database=== |
===Database=== |
||
* [[Table |
* [[Table creation/Postal addresses]] |
||
* [[SQL-based authentication]] |
|||
* [[Table Creation - Address]] |
|||
* [[Parametrized SQL statement]] |
|||
===Protocol/language implementations=== |
===Protocol/language implementations=== |
||
* [[ |
* [[Active Directory/Connect]] |
||
* [[ |
* [[Active Directory/Search for a user]] |
||
* [[ |
* [[SOAP]] |
||
* [[Send email]] |
|||
* [[Client-Authenticated HTTPS Request]] |
|||
* [[Window creation/X11]] |
|||
* [[HTTPS request with authentication]] |
|||
====HTTP client==== |
|||
* [[SQL-Based Authentication]] |
|||
* [[ |
* [[HTTPS]] |
||
* [[HTTPS/Authenticated]] |
|||
* [[Search for a User in Active Directory]] |
|||
* [[HTTPS/Client-authenticated]] |
|||
* [[XML Creation]] |
|||
* [[ |
* [[Yahoo! search interface]] |
||
====XML==== |
|||
* [[XML and XPath]] |
|||
* [[ |
* [[XML/Output]] |
||
* [[XML/Input]] |
|||
* [[XML/XPath]] (improve: needs revisiting when E-XML is better) |
|||
===Miscellaneous=== |
===Miscellaneous=== |
||
* [[Formatted |
* [[Formatted numeric output]] |
||
* [[Print a Stack Trace]] (cross-impl agreement) |
|||
* [[Write float arrays to a text file]] (same as Formatted Output) |
* [[Write float arrays to a text file]] (same as Formatted Output) |
||
* [[Regular |
* [[Regular expressions]] (need agreement on regexp substitution and regexp search-as-opposed-to-match) |
||
* [[Sort stability]] (Need to find/write the documentation on this) |
* [[Sort stability]] (Need to find/write the documentation on this) |
||
* [[Stack traces]] (cross-impl agreement) |
|||
==Needs improvement== |
|||
* [[Dynamic variable names]] (improve: Once environment-<code>with</code> is builtin, show using it together with <code>interp.setTopScope</code>) |
|||
* [[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== |
==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== |
|||
<!--COMPLETED--> |
|||
<!--ENDCOMPLETED--> |
|||
==To |
==To classify== |
||
Insert new tasks here. |
Insert new tasks here. |
||
<!--INSERT--> |
|||
<!--ENDINSERT--> |
|||
</div> |
</div> |
Latest revision as of 18:38, 1 February 2011
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 withinterp.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.