Countdown Solver in Haskell 2 May 2026 Countdown Haskell Functional Programming Data Structures Algorithms