User:MathematicalOrchid
From HaskellWiki
(Difference between revisions)
m 
Revision as of 12:31, 9 July 2007
Contents 
1 Status
Enthusiastic Haskell newbie.
2 Main Interests
 Using Haskell to write triposcopic mathematical algorithms with only a tiny amount of code.
 Using Haskell to do seriously computebounded work in a multiprocessor setup.
3 Projects
3.1 Active
 Toy compression implementations in Haskell.
3.2 On Hold
 Indoculate — Program to convert a single (custom) source to both HTML and LaTeX, and also do crosslinking. (Status: in production use)
 Chaos — chaos pendulum simulator (Status: moderately working, needs UI)
 Haktal — fractal generator. (Status: minimal functionality)
 HoJ — Haskell to Java compiler. (Status: skeletal)
 Evlor — Interactive Haskell stepline debugger. (Status: skeletal)
 Sorting algorithm benchmarks.
 Audio DSP in Haskell.
 Haskell SDL for POVRay.
3.3 Failed
 Haskell ray tracer.
 Haskell type deducer.
 Haskell program to cause world peace.
4 Darcs
4.1 Indoculate

darcs get http://www.orphi.me.uk/darcs/Indoculate

ghc make MakeHTML

ghc make MakeSite

ghc make MakeLaTeX
4.2 Chaos pendulum simulator

darcs get http://www.orphi.me.uk/darcs/Chaos
(Chaos pendulum simulator.)
4.3 Toy Compression

darcs get http://www.orphi.me.uk/darcs/ToyCompression

ghc O2 make Encode

ghc O2 make Decode

Encode algorithm file
(Compressfile
using specified algorithm, and save asfilealgorithm
.) 
Decode algorithm file
(Decompressfile
using specified algorithm, and save asfileunalgorithm
.)
Currently working algorithms:
 '
RLE
': Runlength encoding. Works well on files containing lots of 'runs' of the same value  e.g., pixel data. Works horribly on text.  '
BWT
': BurrowsWheeler transform. Doesn't actually do any compression, but tends to make data more compressible.  '
MTF
': Movetofront encoding. Again, doesn't compress, but makes the data more compressible.  '
Fib
': Fibonacci codes. Low numbers take up fewer bits than large numbers.  '
LZW
': LempelZivWelch. Works well on just about everything!
Notes:
 Danger: BWT is extremely slow. It also uses absurd amounts of RAM! Run this algorithm only on small files. (Less than about 10 KB.)
 LZW works very well, but BWT+MTF+Fib is currently unbeaten...
5 Contributed Code
 Library for binary
 Library for vectors
 Library for colours
 Library for PPM images
 Toy compression implementations
6 Current Unsolved Questions
 Why do Haskell language extensions exist?
 How do you do graphics in Haskell?
 How come (e.g.) Smalltalk provides 27 different types of collection, but Haskell only ever involves singlelinked lists and binary trees?
 Why is slower thanputStr xs1; putStr xs2?putStr (xs1 ++ xs2)