Здравствуйте, Kolesiki, Вы писали:
K>И я не увидел тут опровержения — ты что, думаешь в стиле ЛИСПа что ли?? Возьми рецепт любой кухарки — там ИМПЕРАТИВНО излагают пункт за пунктом что надо делать.
Нет, конечно.
Рецепт начинается с: например: возьмите ингредиенты: яйца, сахар, манка, мука, соль, сахар, кефир (указаны количества каждого). Это _функциональная_ зависимость: прежде чем собирать это, компоненты должны появиться, и кухарка решает задачу _зависимости_ — как именно реализовать — может, надо зайти в соседний подъезд в магазин, а, может, ещё съездить купить кур для яиц, посадить буряк для сахара и накопать шахту для соли. Это на входе.
Вот наугад ткнул в рецепты, попал в
https://academy.oetker.ru/pirogi/vozdushnaya-sharlotka-s-yablokami/ (не реклама, почти первое из гуглоподсказки)
1. Для приготовления шарлотки нам понадобятся четыре некрупных яблока, лучше отдавать предпочтение кислым сортам. Очищаем яблоки от плодоножек и семечек, нарезаем тонкими дольками.
2. Для приготовления теста просеиваем муку с разрыхлителем. Оставляем на время.
Любой кухарке известно, что чищенные и резаные яблоки сохнут. Значит, пункт 2 в норме должен быть выполнен до пункта 1, если хочется свежайших яблок. Связи между пунктами нет, могут быть выполнены в любом порядке. На самом деле пункт 1 нужен только перед пунктом 5.
(Или же завернуть плотно в кулёчек и отложить. Это не сказано, надо догадаться.)
3. Охлажденные куриные яйца разбиваем в высокую посуду и взбиваем с помощью миксера, постепенно увеличивая скорость. Добавляем сахарный песок. Продолжаем взбивать, пока масса не посветлеет и не увеличится в объеме.
4. Ставим скорость миксера на минимум и постепенно добавляем просеянную муку с разрыхлителем. Тесто должно получиться густым, как сметана, и быть однородным.
3 и 4 не делятся, ok. 4 зависит от 2.
5. Форму для выпечки смазываем сливочным маслом и присыпаем мукой (можно вместо муки посыпать панировочными сухарями с сахаром, так у готовой шарлотки появится хрустящая карамельная корочка) Кладем в форму подготовленные яблочные дольки, равномерно распределяем.
Снова внешние зависимости от компонентов, ok. Уже нужны яблочные дольки (пункт 1). На самом деле тесто ещё не нужно! Или его может готовить кто-то параллельно.
Дальше, да, пункты строго последовательно зависят друг от друга и записаны по порядку.
Так вот — резюмирую — тут много чисто функциональных зависимостей, которые 1) могут выполняться параллельно (резать и замешивать могут разные люди; готовить форму, разогревать духовку и т.д. — тоже), 2) могут переставляться, 3) не все прописаны (компоненты, плита/духовка, предварительный прогрев и всё такое).
Императивность описания — чисто внешняя форма, которая не должна обманывать (и не обманывает хоть немного опытную кухарку). Кухарка (повар) сама находит зависимости и переразлагает в ориентированный граф действий.
K> Это и есть самый естественный путь в ИТ. Что за кретины набежали со своими минусами — ума не приложу — видимо, ФП им напрочь мозг выел. Заодно и совесть.
Человек не императивен в своём поведении. Ближе всего к нашей конструкции — событийно-управляемое построение с приоритетными очередями коротких функциональных цепочек, которые сознательно перепланируются.
Минусы таки правильны.