Может, я не умею читать, но скажу грубое: я не понял задачу. Решение вижу - реализация форта, со всякими интересными свойствами. Вопрос: для чего она делается? 1. Выполнять фортовские программы? 2. Проверять фортовские программы? 3. Кодогенерить из форта? 4. Кодогенерить в форт?
Не, это ерунда: если вдруг оказывается, что дупать флаг надо, то такое поведение легко пристроить в твою модель. По-крайней, мере, я не вижу трудностей. Просто хотел понять, такое поведение запрещено по принципиальным соображениям или "пока не потребуется иное".
Я обычно такие флаги обрабатывал чем-то типа вызова maybe, который снимал со стека и флаг и все остальные результаты, и подкладывал своё, в итоге, вершина получалась одинаковой в обоих ветках. Просто потому что это напрашивается. Я, вроде бы, так никогда не делал.
1. Выполнять фортовские программы?
2. Проверять фортовские программы?
3. Кодогенерить из форта?
4. Кодогенерить в форт?
Reply
Можно потом присоединить и кодогенерацию в Форт.
Reply
Reply
А зачем тебе делать dup флагу?
Reply
Reply
Пока не придумаешь, держи код, что работает ([] - quotation, как в Joy, или):
dupFlag = maybes (mkJust *** mkJust) (mkNothing)
С одной стороны вернёт Maybe (Maybe a) в виде Just (Just a), с другой тоже, только Nothing. ;)
Reply
Просто хотел понять, такое поведение запрещено по принципиальным соображениям или "пока не потребуется иное".
Я обычно такие флаги обрабатывал чем-то типа вызова maybe, который снимал со стека и флаг и все остальные результаты, и подкладывал своё, в итоге, вершина получалась одинаковой в обоих ветках. Просто потому что это напрашивается.
Я, вроде бы, так никогда не делал.
Reply
Reply
Leave a comment