Wed Jan 16 22:02:40 CET 2013

Time for the difficult questions

I like abstract interpretation.  I like autodiff.  But is using a
typed language really necessary for straightforward DSP code?


- Polymorphism: abstract algorithms over types (scalar floats, ints, doubles,
  vectors, matrices, processess)

- Some control over expansion/inlining

- Multiple interpretations of code: direct eval, DSP code, GUI code.

- Straightforward generation of C code

Up to now I've been using Haskell for this, but is it really a good
choice.  Maybe it is better to go for Scheme?

Would it be useful to start a small project to see if it makes sense
to do AI in Scheme?  The most useful part of the Haskell experiments
has been modeling of dataflow graphs with state abstracted away.  This
should be straightforward to do in Racket.

Trouble here is how much time is this going to take?

Main disadvantage of Haskell is the inflexibility of the type-level
tricks.  Sometimes it is just too hard to make something work that is
straightforward to do using direct metaprogramming.