Leave a comment

Comments 45

indeyets January 20 2007, 14:32:04 UTC
вёрстка не срослась с livejournal
нужно < подставить

Reply

thesz January 20 2007, 14:44:12 UTC
Try again. ;)

Reply

thesz January 20 2007, 18:24:23 UTC
And again. Ещё и плюс отовсюду повыкидывало.

Reply


(The comment has been removed)

thesz January 20 2007, 18:24:41 UTC
Не только там не было. Везде не было. Я поправил.

Reply


nealar January 20 2007, 21:54:10 UTC
Хорошее подробное описание. Как раз мой чайницкий уровень. А зачем нужен абстрактный тип S? Какие у него преимущества перед, скажем, списками?

Reply

lomeo January 20 2007, 22:18:56 UTC
действительно. почему не type S a = [a] или даже data S a = S [a], тогда функции проще вроде получаются (по крайней мере код короче из-за использования стандартных), а при втором варианте можно закрыть в модуле возможность делать S [], чтобы абстракция всегда была бесконечной.

Reply

thesz January 21 2007, 08:41:19 UTC
Во-первых, из-за необходимости перекрывать определения классов. Я планировал, помимо Show, перекрыть ещё Num и многое другое. Не понадобилось.

Первый вариант плох ещё и тем, что синоним типа может быть раскрыт и получится что-то типа [([a],[[a]])] -> [(b,[c])] -> ... -> [[a]]. В общем, сплошная путаница. ;)

Второй вариант используется Hawk. Он лишён вышеуказанных недостатков, но другой пользы от него я никакой не вижу. Всё равно примитивов, работающих с внутренней структурой сигнала раз-два и обчёлся.

Как выяснилось в процессе работы, мой вариант ещё и быстрей работает. ;)

Reply

lomeo January 21 2007, 12:03:54 UTC
Хорошо! Третий вариант :) newtype S a = S [a] ;-)
Хочешь перекрываешь инстансы, хочешь derive-ишь.

Помнишь, я говорил, что мне кажется, что подобные вещи лучше делать на комонадах? Так вот я тут хочу сделать то же самое таким образом, если будет время да ещё и получится - обязательно выложу.

Reply


geniepro January 21 2007, 14:18:13 UTC
Нельзя ли разместить где-нить эти исходники для скачки в виде архива?
А то ни один из этих модулей не компилируется (ни S, ни SVB)... :о(

Reply

thesz January 21 2007, 14:26:37 UTC
Мне некуда это выкладывать. Но зато я поправил ошибки. ;)

Reply


rvp74 January 22 2007, 07:13:21 UTC
Буквально за пару дней до этого поста я рассматривал схему конвеерного суматора чисел с плавающей запятой. Это был экзамен по архитектуре ВМ. :)

Reply

thesz January 22 2007, 07:33:10 UTC
И как, у меня похоже на правду? ;)

Reply

rvp74 January 22 2007, 07:38:30 UTC
Порядок операций тот же. А программу я еще не анализировал - читается тяжело

Reply

thesz January 22 2007, 07:42:28 UTC
Сумматора, как такового, там нет. Там есть его имитация.

Reply


Leave a comment

Up