) и составьте функцию, чтобы получить более лаконичное:

лизую комбинаторный алгоритм оптимизации в Haskell:

Given an initial candidate solution, repeat until stopping criteria are met:

  1. Determine possible moves
  2. Evaluate possible moves
  3. Choose a move
  4. Make move, record new candidate solution, update search state

Я мог бы написать функции для шагов 1-4 и связать их вместе внутри рекурсивной функции для обработки цикла и передачи состояния от одной итерации к другой, но у меня есть смутное представление о том, что монады применимы.

Какой лучший способ выразить такую ​​процедуру в Haskell?

Ответы на вопрос(2)

Ваш ответ на вопрос