metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2009-07-10 06:48 pm

Концептуальное о ваших этих хаскелях и окамлах

haskell datagrid

ocaml datagrid

Обратите внимание на количество найденных ссылок. И попытаться найти хотя бы одну из них которая соответствует искомому.

Я, конечно, понимаю, что заниматься мерянием производительности алгоритмов и разработкой сложной back-end логики это гораздо интереснее, чем делать GUI, но GUI тоже таки делать нужно.
У меня вот в последней сложной фиче, которую я делал, на back-end логику ушло пару дней, на ввод данных для нее - неделя и еще две недели на подгонку GUI чтобы это все было можно использовать как можно удобнее и быстрее.

[identity profile] dmzlj.livejournal.com 2009-07-12 02:38 am (UTC)(link)

Это какие-то неправильные умные книжки. Или вы их как-то неправильно поняли. Вот, например, конечный автомат на два состояния - Пыщь и Адын:

open ExtString

type state = Pysh | Adyn 

let fsm evt =
    let input state x = match state, x with
    | Pysh, '{' -> Adyn
    | Pysh, ' ' -> Pysh 
    | Pysh, c   -> Printf.printf "Pysh! %c\n" c; Pysh
    | Adyn, '}' -> Pysh
    | Adyn, ' ' -> Adyn
    | Adyn, c   -> Printf.printf "Adyn! %c\n" c; Adyn 

    in List.fold_left input Pysh (String.explode evt)

let _ = 
    fsm "000000000 { 1111111111111111111 } 2222222222222222222"

никакие монады для его реализации не понадобились, и за исключением побочного эффекта печатания - вполне функционально. Стейт, заметим, есть, но при этом все остается в рамках концепции.

заметим еще, что сделать такой автомат на императивном языке "где есть состояния" c++ - будет несколько более громоздко.

[identity profile] kkirsanov.livejournal.com 2009-07-12 10:49 am (UTC)(link)
--Или вы их как-то неправильно поняли.
Всякое бывает

[identity profile] kkirsanov.livejournal.com 2009-07-12 10:57 am (UTC)(link)
Кстати, а не подскажите какой-нибудь сайтик с типичными задачами на хасскеле, вроде этой?
Что бы, так сказать, на живых примерах учиться.

[identity profile] dmzlj.livejournal.com 2009-07-12 11:05 am (UTC)(link)
Ну, это был окамл, но для хаскелла могу порекомендовать сайты

http://learnyouahaskell.com/ и http://book.realworldhaskell.org/read/

не то, что бы там были типичные задачи, но какие-то задачи в процессе изучения языка разбираются.


По поводу задач лично мне понравился курс вот этого вот товарища: http://andrej.com/plzoo/
по написанию трансляторов языков. Много маленьких примеров имплементация языков программирования на ocaml