User:Kevin Reid/Common Lisp tasks: Difference between revisions
Content added Content deleted
(-exceptions) |
(updates) |
||
Line 1:
This is [[User:Kevin Reid|Kevin Reid]]'s classification of [[tasks not implemented in Common Lisp]], or just poorly done in CL, by what kind of problem they are.
As of
<div style="-webkit-column-count: 3">
Line 10:
* [[Special characters]]
* [[Variables]]
* [[First-class Numbers]]
===Data structures===
Line 16 ⟶ 15:
==Algorithms==
* [[Huffman codes]]
* [[Point in polygon (ray casting algorithm)]]
Line 67 ⟶ 64:
* [[Rendezvous]]
* [[Synchronous Concurrency]]
==Type system==
==Object-oriented==
* [[Polymorphic copy]]
Line 81 ⟶ 79:
* [[File Modification Time]]
* [[File Rename]]
==FFI/low-level==
Line 110 ⟶ 107:
* [[User Input - graphical]]
* [[Window management]]
* [[Pendulum Animation]]
===Reflective===
* [[Get Pixel Information]]
Line 138 ⟶ 136:
==Use a library==
* [[Distributed program]]
* [[Play recorded sounds]]
===HTTP client===
Line 175 ⟶ 172:
==To improve==
* [[Basic bitmap storage#Common Lisp]]
* [[Adding variables to a class instance at runtime#Common Lisp]] — This should be a per-*instance* change. Use the MOP to generate a subclass and change-class to it.
* [[Arithmetic Evaluator#Common Lisp]] — I think there could be some simplification by changing to a prefix AST and using the CL operator names (use symbol-function, not eval).
* [[Pattern Matching#Common Lisp]] — See if there's a pattern matching library that offers more-lispy syntax.
==To classify==
|
Revision as of 01:34, 8 August 2009
This is Kevin Reid's classification of tasks not implemented in Common Lisp, or just poorly done in CL, by what kind of problem they are.
As of 00:13, 8 August 2009. When updating this list, consult the diffs since then for what to add/remove.
Basic language features
- Binary string manipulation functions
- Bit oriented IO
- Special characters
- Variables
- First-class Numbers
Data structures
Algorithms
Algorithmic problems
- Closest pair problem
- Knapsack Problem
- Non Continuous Subsequences
- Pyramid of numbers
- Spiral
- Sudoku Solver
- Top Rank Per Group
- Topological (dependency) sort
Miscellaneous programs
Mathematics
Matrices
Integers
- Long Multiplication
- Lucas-Lehmer test
- Miller-Rabin test
- Multiplicative order
- Trial factoring of a Mersenne number
Numerics
- Gamma function
- Multiple Regression
- Numerical Integration
- Polynomial Fitting
- Quadratic Equation
- Roots of a function
- Sequence of Non-squares
Concurrency/events
- Active object
- Atomic updates
- Dining philosophers
- Event
- Metered Concurrency
- Mutex
- Rendezvous
- Synchronous Concurrency
Type system
Object-oriented
Text-bashing
File access
FFI/low-level
- Address Operations
- Allocator
- Basic pointer and reference operations
- Call function in shared library
- Data Representation - Controlling Fields in a Structure
- Data Representation - Specifying Minimum Size
- Host Introspection
- Machine Address
OS interfaces
- Creating a Secure Temporary File
- Determine if Only One Instance is Running
- Interrupts
- Program Termination
Sockets
Windows
GUI
- Get mouse position
- Keyboard macros
- Simple Windowed Application
- User Input - graphical
- Window management
- Pendulum Animation
Reflective
Control flow
Graphics
The image-type tasks
- Bresenham's line algorithm
- Cubic bezier curves
- Flood fill
- Grayscale image
- Image convolution
- Image histogram
- Median filter
- PPM conversion through a pipe
- Quadratic bezier curves
- Read image file through a pipe
- Read ppm file
- Xiaolin Wu's line algorithm
Use a library
HTTP client
Database
SMTP
SOAP
XML
Calendar
OpenGL
Testing
Miscellaneous other
- BNF Grammar
- Evens Sum To Even
- Measure relative performance of sorting algorithms implementations
- Object Serialization
Rosetta Code reflection
To improve
- Basic bitmap storage#Common Lisp — review for efficiency (inlining?), necessity of type declarations, idiom
- Adding variables to a class instance at runtime#Common Lisp — This should be a per-*instance* change. Use the MOP to generate a subclass and change-class to it.
- Arithmetic Evaluator#Common Lisp — I think there could be some simplification by changing to a prefix AST and using the CL operator names (use symbol-function, not eval).
- Pattern Matching#Common Lisp — See if there's a pattern matching library that offers more-lispy syntax.
To classify
Insert new tasks here.