<html><head></head><body><div style="color:#000; background-color:#fff; font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, Sans-Serif;font-size:10px"><br><div id="yui_3_16_0_ym19_1_1461736019041_17786" dir="ltr"><font id="yui_3_16_0_ym19_1_1461736019041_17484" size="3"><font id="yui_3_16_0_ym19_1_1461736019041_17785" size="3">unsafePerformIO</font></font></div><div dir="ltr"><font id="yui_3_16_0_ym19_1_1461736019041_17484" size="3"><font id="yui_3_16_0_ym19_1_1461736019041_17785" size="3"><br></font></font></div><font id="yui_3_16_0_ym19_1_1461736019041_17484" size="3">md5 - функция принимает на вход ленивую ByteString от файла и выдает Integer.<br id="yui_3_16_0_ym19_1_1461736019041_17395" clear="none">Чистая функция? Да. А внутри unsafePerformIO. :-)<br id="yui_3_16_0_ym19_1_1461736019041_17396" clear="none"><br id="yui_3_16_0_ym19_1_1461736019041_17397" clear="none">Перемножить матрицы для скорости паралельно.<br id="yui_3_16_0_ym19_1_1461736019041_17398" clear="none">Тип функции :: матрица -> матрица -> матрица<br id="yui_3_16_0_ym19_1_1461736019041_17399" clear="none">Чистая функция, а внутри forkIO и unsafePerformIO.<br id="yui_3_16_0_ym19_1_1461736019041_17400" clear="none"><br id="yui_3_16_0_ym19_1_1461736019041_17401" clear="none"></font><div id="yui_3_16_0_ym19_1_1461736019041_17402" dir="ltr"><font id="yui_3_16_0_ym19_1_1461736019041_17812" size="3">От всем хорош haskell, только притворятся чистым языком.</font></div><div id="yui_3_16_0_ym19_1_1461736019041_17403" dir="ltr"><font size="3"><br id="yui_3_16_0_ym19_1_1461736019041_17404" clear="none"></font></div><div id="yui_3_16_0_ym19_1_1461736019041_17405" dir="ltr"><font size="3">:-)<br id="yui_3_16_0_ym19_1_1461736019041_17406" clear="none"></font></div><div id="yui_3_16_0_ym19_1_1461736019041_17407" dir="ltr"><div id="yui_3_16_0_ym19_1_1461736019041_17409" dir="ltr"><br id="yui_3_16_0_ym19_1_1461736019041_17408" clear="none"></div></div><div id="yui_3_16_0_ym19_1_1461736019041_17377"><span></span></div> <div class="qtdSeparateBR"><br><br></div><div style="display: block;" id="yui_3_16_0_ym19_1_1461736019041_17551" class="yahoo_quoted"> <div id="yui_3_16_0_ym19_1_1461736019041_17550" style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, Sans-Serif; font-size: 10px;"> <div id="yui_3_16_0_ym19_1_1461736019041_17549" style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, Sans-Serif; font-size: 16px;"> <div id="yui_3_16_0_ym19_1_1461736019041_17548" dir="ltr"><font id="yui_3_16_0_ym19_1_1461736019041_17552" face="Arial" size="2"> On Tuesday, 26 April 2016, 16:59, Alexander Q <qalexx@gmail.com> wrote:<br></font></div>  <br> <div id="yui_3_16_0_ym19_1_1461736019041_17555" class="y_msg_container"><div id="yiv5398829694"><div id="yui_3_16_0_ym19_1_1461736019041_17554" dir="ltr">> На ум приходит посчитать md5, но а если файла, то его целиком читать в память  не оптимально, то это уже кондуиды, и на каждую порцию получаем IO в алгоритме.<div id="yui_3_16_0_ym19_1_1461736019041_17813"><span style="line-height:1.5;"><br></span></div><div id="yui_3_16_0_ym19_1_1461736019041_17760"><span id="yui_3_16_0_ym19_1_1461736019041_17761" style="line-height:1.5;">Отличное условие. Посчитать функцию от (IO a) без IO? Будьте добры, спойте "ёлочку", не набирая воздух в течение получаса.</span></div></div></div></div>  </div> </div>  </div></div></body></html>