![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
haskell datagrid
ocaml datagrid
Обратите внимание на количество найденных ссылок. И попытаться найти хотя бы одну из них которая соответствует искомому.
Я, конечно, понимаю, что заниматься мерянием производительности алгоритмов и разработкой сложной back-end логики это гораздо интереснее, чем делать GUI, но GUI тоже таки делать нужно.
У меня вот в последней сложной фиче, которую я делал, на back-end логику ушло пару дней, на ввод данных для нее - неделя и еще две недели на подгонку GUI чтобы это все было можно использовать как можно удобнее и быстрее.
ocaml datagrid
Обратите внимание на количество найденных ссылок. И попытаться найти хотя бы одну из них которая соответствует искомому.
Я, конечно, понимаю, что заниматься мерянием производительности алгоритмов и разработкой сложной back-end логики это гораздо интереснее, чем делать GUI, но GUI тоже таки делать нужно.
У меня вот в последней сложной фиче, которую я делал, на back-end логику ушло пару дней, на ввод данных для нее - неделя и еще две недели на подгонку GUI чтобы это все было можно использовать как можно удобнее и быстрее.
no subject
Date: 2009-07-11 10:02 am (UTC)Или речь о чём-то ином?
no subject
Date: 2009-07-11 10:21 am (UTC)Хотя я, скорее, имел в виду постепенное добавление декларативных средств в C# - вон, и лямбды уже есть, и еще какие-то радости.
no subject
Date: 2009-07-11 12:12 pm (UTC)Но в ту сторону я полез именно за тем, чтобы придумать способ описания этого конечного автомата с участием пользователя, т.к. в FP как раз это все более математизировано, чем в привычных языках программирования.
no subject
Date: 2009-07-11 12:26 pm (UTC)Но в ту сторону я полез именно за тем, чтобы придумать способ описания этого конечного автомата с участием пользователя, т.к. в FP как раз это все более математизировано, чем в привычных языках программирования.
no subject
Date: 2009-07-11 03:50 pm (UTC)В умных книжках пишут что ФП и автоматы - две вещи несовместные, т.к. у автоматов состояния есть, а в ФП их быть не должно.
no subject
Date: 2009-07-11 05:16 pm (UTC)Монады State и gen_fsm в эрланге, наверное, не существует?
no subject
Date: 2009-07-11 07:14 pm (UTC)Боюсь что уже не упомню. Помню что по-английски было.
Обосновывлось так: если у вас сплошные состояния то это уже к товарищу Тюрингу и всякой императивщине, всяческими костылями конечно запихнуть в ФП можно, но зачем?
--Монады State и gen_fsm в эрланге, наверное, не существует?
Конечно существуют.
no subject
Date: 2009-07-11 07:34 pm (UTC)Про костыли интересен более полный ответ - что вы ими считаете и почему?
no subject
Date: 2009-07-11 09:10 pm (UTC)Неправильно.
--Про костыли интересен более полный ответ - что вы ими считаете и почему?
Деалю системы управления для мобильных роботов.
Ради интереса попробовал на хаскеле.
Получилась куча монад и почти императивно.
no subject
Date: 2009-07-11 09:32 pm (UTC)Скепсис вещь хорошая, но по-моему лучше, когда он достаточно аргументирован.
no subject
Date: 2009-07-11 10:41 pm (UTC)no subject
Date: 2009-07-12 06:27 am (UTC)По сути там переписывание графов, хотя не сказал бы что хорошо разбираюсь в теме.
no subject
Date: 2009-07-12 06:34 am (UTC)Но тут проблема в другом. Машина тьюринга от современных процов и языков программирования отличается очень сильно, хотя я примерно представляю, как можно ее преобразовать до проца с простейшим набором действий.
А вот для лямбда-исчисления я затрудняюсь такую же последовательность представить, а во всех практических реализациях ФП используют уже готовые команды существующих процессоров или языков низкого уровня на которых это реализовано. Т.е. формально, операцию сложения можно описать в нумералах черча, но никто ж этого делать практически не станет, а вместо этого используют операции от обычных процессоров, которые сами по себе ближе к тьюрингу, чем к лямбдам.
(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2009-07-11 06:41 pm (UTC)no subject
Date: 2009-07-11 10:38 pm (UTC)no subject
Date: 2009-07-12 02:47 am (UTC)no subject
Date: 2009-07-12 06:49 am (UTC)no subject
Date: 2009-07-12 06:55 am (UTC)no subject
Date: 2009-07-12 06:58 am (UTC)no subject
Date: 2009-07-12 02:38 am (UTC)Это какие-то неправильные умные книжки. Или вы их как-то неправильно поняли. Вот, например, конечный автомат на два состояния - Пыщь и Адын:
никакие монады для его реализации не понадобились, и за исключением побочного эффекта печатания - вполне функционально. Стейт, заметим, есть, но при этом все остается в рамках концепции.
заметим еще, что сделать такой автомат на императивном языке "где есть состояния" c++ - будет несколько более громоздко.
no subject
Date: 2009-07-12 10:49 am (UTC)Всякое бывает
no subject
Date: 2009-07-12 10:57 am (UTC)Что бы, так сказать, на живых примерах учиться.
no subject
Date: 2009-07-12 11:05 am (UTC)http://learnyouahaskell.com/ и http://book.realworldhaskell.org/read/
не то, что бы там были типичные задачи, но какие-то задачи в процессе изучения языка разбираются.
По поводу задач лично мне понравился курс вот этого вот товарища: http://andrej.com/plzoo/
по написанию трансляторов языков. Много маленьких примеров имплементация языков программирования на ocaml
no subject
Date: 2009-07-27 12:43 pm (UTC)Но не написал. Потому что, как посмотришь, так выходит, что граф состояний довольно сильно связен, все ветки описывать прямолинейно — некомпактно выходит, описывать "в общем виде" — приходим примерно к тому, от чего ушли. А уж если втащить туда влияние всяких опций (то показывать, это не показывать, вон то работает в зависимости от настроек), то и вообще граф расползается ужасно. В результате остановился на кусочках state machine (переход между состояниями делает enable-disable наборам команд, как в turbovision) и описанию логики "в свободной форме" в остальном.
Потом я перелез на веб-интерфейсы. А там вообще практически полносвязный граф: юзер может и url любой из закладок достать, и кнопки back и forward понажимать. Там как-то проще с концепцией состояния сессии.
В общем, КА как язык описания хорош для протоколов связи и, пожалуй, "узких" UI, типа кассового аппарата. А для "обычных" UI — сомневаюсь.
Для UI, в особенности web, мне кажется более интересным использование continuations (seaside, weblocks, wee, etc). Там, как мне кажется (я не пробовал, только читал описания) код действительно получается более компактным и прямолинейным. Какие там подводные камни, не знаю.