Что такое "цельная мука" в функциональном программировании?

Может ли кто-нибудь дать ясное объяснение? Что такое программирование в непрозрачной области в области функционального программирования. Все, что я нашел, это то, что цельная мука - это

фокусировка на целых структурах данных, а не на их элементах

но как его можно архивировать? (Примеры кода на таких языках, как Scala или Ocaml, очень желательны.)

Ответ 1

"Функциональные языки преуспевают в программировании в области сплошной муки, термин, придуманный Герант Джонс. Программирование в области сплошной муки означает думать о большом: работать с полный список, а не последовательность элементов; разработать решение пространство, а не индивидуальное решение; представьте себе график, скорее чем один путь. Метод многоплодной торговли часто предлагает новые идеи или предоставляет новые перспективы по данной проблеме. Это красиво дополняется идеей проективного программирования: сначала решите больше общая проблема, затем извлеките интересные кусочки и превращая общую программу в более специализированные".

Я также нашел это

он помогает предотвратить заболевание, называемое "индекситом", и поощряет законное (от "Жемчужины функционального алгоритма", Ричард Берд, 2010)

См. также (http://www.comlab.ox.ac.uk/ralf.hinze/publications/ICFP09.pdf)

Ответ 2

Я всегда находил решение Hutton/Bird Sudoku хорошим примером программирования в области сплошной муки: http://www.cs.nott.ac.uk/~gmh/sudoku.lhs

Справедливое количество функциональных жемчужин (как в замечательной книге Птицы, которую цитирует Code Monkey, так и в том, что доступно здесь: http://www.haskell.org/haskellwiki/Research_papers/Functional_pearls), вероятно, также поучителен.