title: How are Dynamic Programming algorithms implemented in idiomatic Haskell?
body: <p>Haskell and other functional programming languages are built around the premise of not maintaining state.  I'm still new to how functional programming works and concepts in it, so I was wondering if it is possible to implement DP algorithms in an FP way.</p>
  
  <p>What functional programming constructs can be used to do that?</p>