Доизучался ФП
Кусок проги на C#
//фактически, мы делаем следующее: из конструктора/инициализатора с N параметрами мы
//делаем его же(хотя формально это уже не конструктор, а просто функция), но с нулем
//параметров, методом замыкания N параметров конструктора на локальные переменные
//в анонимном делегате.
public delegate T UIStateConstructor<T>() where T:UIStateBase;
public delegate T UIResourceConstructor<T>() where T:class;
Жаль, фреймворк не 3.5, там подобные штуки делать проще стало, менее многословно.
//фактически, мы делаем следующее: из конструктора/инициализатора с N параметрами мы
//делаем его же(хотя формально это уже не конструктор, а просто функция), но с нулем
//параметров, методом замыкания N параметров конструктора на локальные переменные
//в анонимном делегате.
public delegate T UIStateConstructor<T>() where T:UIStateBase;
public delegate T UIResourceConstructor<T>() where T:class;
Жаль, фреймворк не 3.5, там подобные штуки делать проще стало, менее многословно.
Боюсь прослыть невежей, но всё же...
Re: Боюсь прослыть невежей, но всё же...
Re: Боюсь прослыть невежей, но всё же...
Re: Боюсь прослыть невежей, но всё же...
http://www.rsdn.ru/article/funcprog/fp.xml
http://www.rsdn.ru/article/dotnet/LinqAsStapToFp.xml
http://www.rsdn.ru/summary/3857.xml
а потом наверно
http://www.rsdn.ru/article/haskell/haskell_part1.xml
http://www.rsdn.ru/article/haskell/haskell_part2.xml
Вообще говоря, из всех функциональных языков, хаскель мне нравится больше всего, хотя его и сложновато интегрировать в рабочий процесс(дотнет и дельфи ломают мозг, потом сложно подключать модули из других языков(если это не чистый C или обертки на нем)).
Re: Боюсь прослыть невежей, но всё же...
Re: Боюсь прослыть невежей, но всё же...
no subject
no subject
no subject
no subject
no subject
Кстати, я такого рода комменты пишу человеческим языком, хотя и получается гораздо многословнее. А то автобус собьёт и никто в коде уже не разберется :)
no subject
Так шта ФП здесь как всегда не причём. :)
no subject
А вот ФП всё-таки причём, потому что когда видишь функцию filter_exit_map и пытаешься понять, что же она делает, а внутри оказывается какой-нибудь комбинатор, то без комментариев приходится туго, а с комментариями не лучше потому что нужна или ссылка на статью про комбинаторы или описание человеческим языком, что происходит.
no subject
Некоторые граждане до сих пор switch с признаком типа используют.
А когда видят двойную передачу впадают в ступор и кричат "чур меня".
Некоторые, правда, обретают кратковременное просветление при отсылке к авторитетным источникам. :)
no subject
no subject
switch с признаком типа - это когда каженному типу в иерархии присваивается номерочек, и тогда в любом месте, где приходит ссылка на экземпляр базового класса мы этот номерочик проверяем и кастимся к нужному типу...
Короче такой рукопашный визитер (Visitor): http://en.wikipedia.org/wiki/Visitor_pattern