Концептуальное о ваших этих хаскелях и окамлах
haskell datagrid
ocaml datagrid
Обратите внимание на количество найденных ссылок. И попытаться найти хотя бы одну из них которая соответствует искомому.
Я, конечно, понимаю, что заниматься мерянием производительности алгоритмов и разработкой сложной back-end логики это гораздо интереснее, чем делать GUI, но GUI тоже таки делать нужно.
У меня вот в последней сложной фиче, которую я делал, на back-end логику ушло пару дней, на ввод данных для нее - неделя и еще две недели на подгонку GUI чтобы это все было можно использовать как можно удобнее и быстрее.
ocaml datagrid
Обратите внимание на количество найденных ссылок. И попытаться найти хотя бы одну из них которая соответствует искомому.
Я, конечно, понимаю, что заниматься мерянием производительности алгоритмов и разработкой сложной back-end логики это гораздо интереснее, чем делать GUI, но GUI тоже таки делать нужно.
У меня вот в последней сложной фиче, которую я делал, на back-end логику ушло пару дней, на ввод данных для нее - неделя и еще две недели на подгонку GUI чтобы это все было можно использовать как можно удобнее и быстрее.
no subject
Или речь о чём-то ином?
no subject
Хотя я, скорее, имел в виду постепенное добавление декларативных средств в C# - вон, и лямбды уже есть, и еще какие-то радости.
no subject
Но в ту сторону я полез именно за тем, чтобы придумать способ описания этого конечного автомата с участием пользователя, т.к. в FP как раз это все более математизировано, чем в привычных языках программирования.
no subject
Но в ту сторону я полез именно за тем, чтобы придумать способ описания этого конечного автомата с участием пользователя, т.к. в FP как раз это все более математизировано, чем в привычных языках программирования.
no subject
В умных книжках пишут что ФП и автоматы - две вещи несовместные, т.к. у автоматов состояния есть, а в ФП их быть не должно.
no subject
Монады State и gen_fsm в эрланге, наверное, не существует?
no subject
Боюсь что уже не упомню. Помню что по-английски было.
Обосновывлось так: если у вас сплошные состояния то это уже к товарищу Тюрингу и всякой императивщине, всяческими костылями конечно запихнуть в ФП можно, но зачем?
--Монады State и gen_fsm в эрланге, наверное, не существует?
Конечно существуют.
no subject
Про костыли интересен более полный ответ - что вы ими считаете и почему?
no subject
Неправильно.
--Про костыли интересен более полный ответ - что вы ими считаете и почему?
Деалю системы управления для мобильных роботов.
Ради интереса попробовал на хаскеле.
Получилась куча монад и почти императивно.
no subject
Скепсис вещь хорошая, но по-моему лучше, когда он достаточно аргументирован.
no subject
no subject
По сути там переписывание графов, хотя не сказал бы что хорошо разбираюсь в теме.
no subject
Но тут проблема в другом. Машина тьюринга от современных процов и языков программирования отличается очень сильно, хотя я примерно представляю, как можно ее преобразовать до проца с простейшим набором действий.
А вот для лямбда-исчисления я затрудняюсь такую же последовательность представить, а во всех практических реализациях ФП используют уже готовые команды существующих процессоров или языков низкого уровня на которых это реализовано. Т.е. формально, операцию сложения можно описать в нумералах черча, но никто ж этого делать практически не станет, а вместо этого используют операции от обычных процессоров, которые сами по себе ближе к тьюрингу, чем к лямбдам.
(no subject)
(no subject)
(no subject)
no subject
no subject
no subject
no subject
no subject
no subject
no subject
Это какие-то неправильные умные книжки. Или вы их как-то неправильно поняли. Вот, например, конечный автомат на два состояния - Пыщь и Адын:
никакие монады для его реализации не понадобились, и за исключением побочного эффекта печатания - вполне функционально. Стейт, заметим, есть, но при этом все остается в рамках концепции.
заметим еще, что сделать такой автомат на императивном языке "где есть состояния" c++ - будет несколько более громоздко.
no subject
Всякое бывает
no subject
Что бы, так сказать, на живых примерах учиться.
no subject
http://learnyouahaskell.com/ и http://book.realworldhaskell.org/read/
не то, что бы там были типичные задачи, но какие-то задачи в процессе изучения языка разбираются.
По поводу задач лично мне понравился курс вот этого вот товарища: http://andrej.com/plzoo/
по написанию трансляторов языков. Много маленьких примеров имплементация языков программирования на ocaml
no subject
Но не написал. Потому что, как посмотришь, так выходит, что граф состояний довольно сильно связен, все ветки описывать прямолинейно — некомпактно выходит, описывать "в общем виде" — приходим примерно к тому, от чего ушли. А уж если втащить туда влияние всяких опций (то показывать, это не показывать, вон то работает в зависимости от настроек), то и вообще граф расползается ужасно. В результате остановился на кусочках state machine (переход между состояниями делает enable-disable наборам команд, как в turbovision) и описанию логики "в свободной форме" в остальном.
Потом я перелез на веб-интерфейсы. А там вообще практически полносвязный граф: юзер может и url любой из закладок достать, и кнопки back и forward понажимать. Там как-то проще с концепцией состояния сессии.
В общем, КА как язык описания хорош для протоколов связи и, пожалуй, "узких" UI, типа кассового аппарата. А для "обычных" UI — сомневаюсь.
Для UI, в особенности web, мне кажется более интересным использование continuations (seaside, weblocks, wee, etc). Там, как мне кажется (я не пробовал, только читал описания) код действительно получается более компактным и прямолинейным. Какие там подводные камни, не знаю.