produce f = do
prodObj <- createProduct (f ^. energyCost) (f ^. scheme)
placeProduct prodObj (f ^. placementAlg)
return "Successfully produced."
producingScenario :: Eval String
producingScenario = do
f <- read fabric
if f ^. producing then produce f else return "Producing paused."
Пример eDSL игровых сценариев
39
Ссылки
40
● Дизайн и архитектура ПО в ФП
http://habrahabr.ru/post/211871/
● Large-scale design in Haskell? (SO)
http://stackoverflow.com/questions/3077866/lar
ge-scale-design-in-haskell