На самом деле, блок-схемы для использования в программном обеспечении датируются всего около 60 лет. (И действительно, программирование, как мы его знаем, датируется всего 65 лет!) В то время они были невероятно важны как инструмент для планирования и разработки алгоритмов до очень утомительного и подверженного ошибкам этапа «кодирования».
В наши дни наши языки программирования достигли уровня выразительности, когда цель алгоритма более четко выражена самим кодом. (Возможно, не так много в VisualBasic, но, конечно, в Haskell.) Следовательно, ни один современный магазин программирования не использует блок-схемы.
Однако, языки визуального программирования существуют и имеют большой успех в некоторых областях. Эти среды связаны с блок-схемами. Возможно, ваш инструктор действительно готовится выполнить некоторую сравнительную работу на языке программирования и побуждает вас задуматься об этих подходах.
Наконец, к вашей конкретной проблеме, подумайте об этом следующим образом: традиционные потоковые диаграммы в первую очередь демонстрируют поток управления через программу, поскольку именно такой код люди писали в то время. Тем не менее, всегда был проиллюстрирован некоторый объем данных. Для функциональной программы вы бы прежде всего демонстрировали поток данных.
Однако хитрость заключается в том, чтобы выяснить, как проиллюстрировать поток (частично примененных) функций в качестве данных. Подумайте о том, что должна делать блок-схема для поддержки концепции подпрограммы, которую можно вызывать в двух местах ... Теперь, возможно, вы можете создать аналогичную графическую конструкцию для обозначения "функции, идентифицируемой Ⓐ, в качестве второго аргумента filter
«Я представляю себе небольшой лук с надписью fmap
с вырезанным в стороне отверстием для ключа, чтобы Ⓐ можно было соединить стрелкой с.
Если ничего другого, подумайте об этом как о задании при изучении альтернативных представлений вашей программы - и если у вас есть расширенная блок-схема (которой никогда не приходилось иметь дело с общими функциями), и проясните это, ваш инструктор должен дать вам дополнительные знаки!