User:MathematicalOrchid
Status
Enthusiastic Haskell newbie.
Main Interests
- Using Haskell to write triposcopic mathematical algorithms with only a tiny amount of code.
- Using Haskell to do seriously compute-bounded work in a multiprocessor setup.
Projects
Active
- Toy compression implementations in Haskell.
On Hold
- Indoculate — Program to convert a single (custom) source to both HTML and LaTeX, and also do cross-linking. (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 step-line debugger. (Status: skeletal)
- Sorting algorithm benchmarks.
- Audio DSP in Haskell.
- Haskell SDL for POV-Ray.
Failed
- Haskell ray tracer.
- Haskell type deducer.
- Haskell program to cause world peace.
Darcs
Indoculate
darcs get http://www.orphi.me.uk/darcs/Indoculate
ghc --make MakeHTML
ghc --make MakeSite
ghc --make MakeLaTeX
Chaos pendulum simulator
darcs get http://www.orphi.me.uk/darcs/Chaos
(Chaos pendulum simulator.)
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 asfile-algorithm
.)Decode algorithm file
(Decompressfile
using specified algorithm, and save asfile-unalgorithm
.)
Currently working algorithms:
- '
RLE
': Run-length encoding. Works well on files containing lots of 'runs' of the same value - e.g., pixel data. Works horribly on text. - '
BWT
': Burrows-Wheeler transform. Doesn't actually do any compression, but tends to make data more compressible. - '
MTF
': Move-to-front encoding. Again, doesn't compress, but makes the data more compressible. - '
Fib
': Fibonacci codes. Low numbers take up fewer bits than large numbers. - '
LZW
': Lempel-Ziv-Welch. 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...
Contributed Code
- Library for binary
- Library for vectors
- Library for colours
- Library for PPM images
- Toy compression implementations
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 single-linked lists and binary trees?
- Why is
putStr xs1; putStr xs2
slower thanputStr (xs1 ++ xs2)
?