LINUX.ORG.RU

Pattern matching на чистом Си

 


0

2

Попробовал сделать алгебраический тип данных и pattern matching на чистом C без плюсов, как оказалось, это таки довольно просто: https://ideone.com/y3LQKb

Есть предложения, что можно здесь изменить/улучшить?

Можно ли совместить его с ООП? Видимо, тогда вместо enum для определения варианта надо сделать указатель на VMT?

Это нужно для собственного языка, в текущей версии компилятор переводит его в C код.

Ответ на: комментарий от anonymous

Begin/End дисциплинируют, если уж на то пошло.

Единственное, что дают Begin/End - -20% к читабельности, -40% к читабельности по диагонали. Даже подсветка не спасает.

LamerOk ★★★★★
()
Ответ на: комментарий от LamerOk

Слово против слова. Кто-то и книги по диагонали читает, потом удивляясь: почему Муму написал Чехов, а памятник поставили Пушкину. А ещё бывает, что юношеские травмы от дельфячьево формоклепания сохраняются на всю жизнь и порождают ненависть к паскальному синтаксису.

Если код на алголе (паскале, обероне, модуле) сложно читать из-за begin-end, значит их там перебор.

Листаю исходники FPC - в среднем BEGIN/END в начале конце функции/процедуры, ну ещё сверху максимум два. Исходники оберона - та же ситуация.

Открываю вот исходник на яве - по пять уровней в порядке вещей.

anonymous
()
Ответ на: комментарий от LamerOk

Почти наверняка сложно читать begin/end, когда код написан в манере «упихай максимум функционала в одну функцию». Ну и зачем так писать на процедурном языке, который вдобавок такому стилю нарочно препятствует.

anonymous
()
Ответ на: комментарий от anonymous

почему Муму написал Чехов, а памятник поставили Пушкину

«Муму» написал Тургенев Иван Сергеевич.

Liz812
()
Ответ на: комментарий от anonymous

[b]Кто-то[/b] и книги [b]по диагонали читает[/b], потом удивляясь: почему Муму написал Чехов, а памятник поставили Пушкину.

Например, вы: Муму написал Тургенев, а не Пушкин.

//чё-то, ЛОРкод сломался, ну и хрен с ним

next_time ★★★★★
()
Последнее исправление: next_time (всего исправлений: 2)
Ответ на: комментарий от anonymous

Мне что, память свою некуда девать, да? До тех, пока пока в справке по ЛОР-коду не поправите, буду писать, как раньше. Чините либо справку, либо ЛОР-код.

next_time ★★★★★
()
Ответ на: комментарий от anonymous

сложно читать из-за begin-end, значит их там перебор.

Кончайте тупить на пару с Pattern matching на чистом Си (комментарий)

Начало / конец блока - это самая распространённая конструкция на процедурных языках. Если маркировать её 8-ю символами вместо двух, абсолютный объём символов вырастает ровно в 4 (прописью - четыре) раза, а удельная масса этих символов в общем объёме кода начинает достигать 7-10%. Из которых три четверти - семантический мусор.

Добрые 20-30% успеха сишечки в её годы - это замена идиотских многобуквенных слов на спецсимволы.

LamerOk ★★★★★
()
Ответ на: комментарий от LamerOk

Да, когда школьником работаешь с лабой, это не имеет никакого значения. Когда скроллишь код третий десяток лет - начинаешь ценить.

LamerOk ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.