212 похожих чатов

Можно ли заменить оператор иф и никогда его не использовать?

12 ответов

22 просмотра

можно, но зачем.

Dmitriy-code Автор вопроса
Sergey P
можно, но зачем.

Почему так не сделают ООПшники?

Dmitriy code
Почему так не сделают ООПшники?

в smaltalk if был функцией вроде.

если у тебя if для вариантов, то лучше не надо.

Sergey P
в smaltalk if был функцией вроде.

технически там and и прочие ifTrue были сообщениями

Dmitriy code
Почему так не сделают ООПшники?

я не помню у кого но видел доклад где чел пытался SOLID через математику обосновать. Упорото немного но в целом поведенческие паттерны они как раз про змену ифов )

Dmitriy-code Автор вопроса
Sergey P
я не помню у кого но видел доклад где чел пытался ...

Да, если бы ифы развивали, они бы не хуже ООП были по сложности

Dmitriy-code Автор вопроса
Sergey P
че?

ООП это механизм. Ифы тоже. Зачем им заменять и конкурировать друг с другом? Сделали бы что то новое.

Dmitriy code
ООП это механизм. Ифы тоже. Зачем им заменять и ко...

тут на самом деле такой момент. ифы, циклы и другие управляющие структуры - это то что называется структурным программированием. Напомню что до них надо было делать джампы к инструкциям. Это не просто "механизм". Это то что появилось в начале 60-х. Читать про всякие goto considered harmful. ну то есть оригинальную публикацию Дэйкстры. У if-ов нет особо проблем, ты можешь мысленно заменить их на функции. Потому что по факту оно эквивалентно. Ифы не особо увеличивают сложность. Если взять какой-нибудь groovy то вообще ifReplacement (predicat) { println "true" } { println "false" } // тоже что и ifReplacement(predicat, whenTrue, whenFalse) то есть чисто вопрос синтаксиса и восприятия. "сложность" и то с чем можно спорить это стэйт. То есть оператор присваивания это то что резко повышает сложность систем ибо вводит понятие времени. Нам теперь не все равно что было до или будет после. То есть скажем циклы, не просто так же говорят что проверку границы цикла пролюбливают чуть ли не в половине случаев, благо теперь есть итераторы и прочие forEach которые уменьшают такие риски. Что до ООП - тут вопрос как на это смотреть. Если смотреть с позиции simula то это лишь скоупы в контексте стукрутного программирования. Ничего принципиально нового даже на момент 68-ого года, просто удобно сделано. А если брать всякие смолтоки то там идея была в другом - у тебя есть объекты, у объектов есть внутренний стэйт и они могут посылать и принимать сообщения (как компьютеры в сети). Эта идея не конфликтует с идеями ФП или структурного программирования, она их дополняет. По факту "ООП" умерло примерно тамв 70-х и в целом хер с ним. Вместо него можно спокойно оперировать понятием экторов а экторы уже про модель распределенных вычислений.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта