Пост про дизайн.

Jun 10, 2010 22:34

Большое спасибо archimag, откликнувшегося на мою предложение написать пост ( Read more... )

блоги, дизайн, ЖЖ, языки программирования, Хаскель

Leave a comment

nealar June 11 2010, 08:01:52 UTC
Может, я не умею читать, но скажу грубое: я не понял задачу. Решение вижу - реализация форта, со всякими интересными свойствами. Вопрос: для чего она делается?
1. Выполнять фортовские программы?
2. Проверять фортовские программы?
3. Кодогенерить из форта?
4. Кодогенерить в форт?

Reply

thesz June 11 2010, 08:47:47 UTC
Проверять фортовские программы и генерировать форт-код.

Можно потом присоединить и кодогенерацию в Форт.

Reply

nealar June 11 2010, 10:34:06 UTC
Видимо, не любые фортовские программы, а подмножество, ведь оно не умеет DUPать флаг.

Reply

thesz June 11 2010, 20:39:56 UTC
Да, подмножество.

А зачем тебе делать dup флагу?

Reply

nealar June 12 2010, 13:41:17 UTC
Не знаю, я же не настоящий фортер. Думал, у тебя где-то припасено объяснение "почему никогда не надо делать дуп флагу", от того и такой дизайн.

Reply

thesz June 12 2010, 17:18:49 UTC
Придумай, чего можно добиться путём flag dup. Если придумаешь, расскажи.

Пока не придумаешь, держи код, что работает ([] - quotation, как в Joy, или):

dupFlag = maybes (mkJust *** mkJust) (mkNothing)

С одной стороны вернёт Maybe (Maybe a) в виде Just (Just a), с другой тоже, только Nothing. ;)

Reply

nealar June 12 2010, 18:23:13 UTC
Не, это ерунда: если вдруг оказывается, что дупать флаг надо, то такое поведение легко пристроить в твою модель. По-крайней, мере, я не вижу трудностей.
Просто хотел понять, такое поведение запрещено по принципиальным соображениям или "пока не потребуется иное".

Я обычно такие флаги обрабатывал чем-то типа вызова maybe, который снимал со стека и флаг и все остальные результаты, и подкладывал своё, в итоге, вершина получалась одинаковой в обоих ветках. Просто потому что это напрашивается.
Я, вроде бы, так никогда не делал.

Reply

thesz June 12 2010, 18:26:07 UTC
Скажем так, использовать другую модель нет особого резона. Рассуждения станут сложнее, а выигрыша особого не получим.

Reply


Leave a comment

Up