August 1st, 2007

with Cat The Cat

Повторное использование кода в Хаскеле.

По следам второй части отчета _adept_ о его участии в ICFP'07.

Он предлагал использование типов классов:
class DNA a where
    append   :: a -> a-> a
    isPrefix :: a -> a -> Bool
    ...
Во многих случаях можно обойтись просто включением модуля с реализацией:
module DNA1(DNA,RNA,append, isPrefix) where ...

module DNA2(DNA,RNA,append,isPrefix) where ...

module CurrDNA(module DNA1) where
import DNA1
При замене реализации необходимо заменить DNA1 на другой модуль в модуле CurrDNA.

Получается меньше ошибок типизации и они будут проще.

Меньше потому, что вывод типов плохо справляется с конструкторами типов (например, mConst = return - будет ошибка, надо писать mConst a = return a).

Ошибки будут проще по той же самой причине. ;)

Минус состоит в том, что необходимо практически везде использовать import CurrDNA, тогда как реализации типов классов доступны практически неявно.
with Cat The Cat

Джоэль разошелся насчет комментариев к постам.

Раз и два.

Там есть ссылка на Group Is It's Worst Enemy, тоже очень интересная речь о динамике отношений в группах с точки зрения программного обеспечения.

Джоэль считает... Ну, он много, чего там считает. Например, что комментарии вредят свободному изъявлению мысли.

С моей точки зрения, он, конечно, прав. Однако, без комментариев не закалишь волю. В смысле, не найдешь дополнительных аргументов.
with Cat The Cat

Феерическое в ru_politics.

Беседа о государстве, наркотиках и замужестве с моделью olesya_s.

Вах.

Мне пришлось сдерживать себя раз пять, а то бы начал говорить глупости. ;)

via beloyar.

PS
Девушка молодец, в некоторых местах. В остальных же... ;)