<div dir="ltr"><div>> Хотел лишь пример бизнес логики без IO...</div><div>Я, к сожалению, использую хаскель только в хобби-проектах. В целом забор помогает отделить не-IO-логику от IO.</div><div>Типичная задача выглядит как</div><div>1. взять данные (IO)</div><div>2. сделать что-то с данными (pure)</div><div>3. положить данные, или вывести их на экран (IO)</div><div><br></div><div>Пункты 1 и 3 можно упростить до readFile и putStrLn. Это дебажить довольно просто. Всё остальное можно сделать не используя IO, за счёт чего гораздо проще будет понимать, как это работает.</div><div><br></div><div>Это касается не только IO. Например, если функция в типе не объявила, что зависит от глобального состояния — то она не зависит от него, и я могу не беспокоиться что какая-нибудь другая функция поломает поведение моей. Это крайне удобно, к этому быстро привыкаешь и страдаешь без таких удобств.</div><div><br></div>> Разницу между mission critiacal и utility софтом вы понимаете?<br>Объясните мне.</div><br><div class="gmail_quote"><div dir="ltr">On Wed, Apr 27, 2016 at 2:42 PM Alex Chistyakov <<a href="mailto:alexclear@gmail.com">alexclear@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div>Да, что касается телекома, транслятор MML для АТСЦ-90 написан на C++ под QNX<br></div>Синхронизатор SS7-канала для <другого телеком-продукта> написан на C++ под Win CE (ну и говно эта ваша Visual Studio 6 Embedded!)<br></div>И никому в здравом уме не пришло бы в голову писать их на COBOL<br></div><div class="gmail_extra"><br><div class="gmail_quote">2016-04-27 14:31 GMT+03:00 Alex Chistyakov <span dir="ltr"><<a href="mailto:alexclear@gmail.com" target="_blank">alexclear@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote"><div><div>2016-04-27 14:25 GMT+03:00 Andrey Kovbovich <span dir="ltr"><<a href="mailto:akovbovich@gmail.com" target="_blank">akovbovich@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">27 апреля 2016 г., 14:15 пользователь Alex Chistyakov <span dir="ltr"><<a href="mailto:alexclear@gmail.com" target="_blank">alexclear@gmail.com</a>></span> написал:<span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Кому, и правда, может прийти в голову предпочесть функциональный язык без сайд-эффектов говноподелию из 60-х.</blockquote></span></div><br>Вас дезинформировали. Из второй половины 50ых)</div></div></blockquote><div><br></div></div></div><div>Картинка с пустым стадионом и подписью "look, all these people care!" dot jpg<br></div><div>Нет, правда, я за свою жизнь писателя дорвеев, дейтингов и ORM на пыхе достаточно отколбасил на энтерпрайз, чтобы утверждения про промышленный стандарт и хороший рантайм кобола не покупать<br></div><div>Любой язык можно обвешать линтерами, статическими анализаторами, тестами и большой командой QAE<br></div><div>Будет почти как у взрослых, но за очень большие деньги<br></div><div>И все равно никаких гарантий не будет<br></div><span><div><br> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>--<br>
Moscow.pm mailing list<br>
<a href="mailto:moscow-pm@pm.org" target="_blank">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" rel="noreferrer" target="_blank">http://moscow.pm.org</a><br>
<br></blockquote></span></div><br></div></div>
</blockquote></div><br></div>
--<br>
Moscow.pm mailing list<br>
<a href="mailto:moscow-pm@pm.org" target="_blank">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" rel="noreferrer" target="_blank">http://moscow.pm.org</a><br>
</blockquote></div>