Size: a a a

2019 August 02

V

V in pro.elixir
В контексте именно эликсира
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Отличие в том, что инкапсуляция в «ООП» и тут служит для разных целей
источник

ŹR

Źmićer Rubinštejn in pro.elixir
В ооп обычно используется инкапсуляция для ограничения интерфейса
источник

ŹR

Źmićer Rubinštejn in pro.elixir
А тут модуль - это набор функций
источник

V

V in pro.elixir
Т.е. ты имеешь ввиду, что слово "метод" означает наличие контекста, типа this и тогдалие?
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Я сейчас говорил вообще-то про приватные функции
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Потому что чем отличаются методы от функций по-моему и так очевидно
источник

V

V in pro.elixir
Мне не очевидно, если честно. То есть, я знаю, как они работают в разных языках, и это для меня очевидно. Не очевидно, почему ты заострил внимание на том, что метод нужно называть методом, а функцию функцией.
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Метод имеет контекст, который называется instance of a class
источник

V

V in pro.elixir
Ассоциации с ООП - единственная причина не называть функцию методом?
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Причём тут ассоциации
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Ты же не называешь модуль классом
источник

ŹR

Źmićer Rubinštejn in pro.elixir
По твоей логике ты не называешь модуль классом чтобы избежать ассоциаций с ООП?
источник

V

V in pro.elixir
:)
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Все наоборот - важно не так как ты называешь (хотя это очень важно), а что на самом деле
источник

V

V in pro.elixir
Судя по заметкам Алана Кея, он  подразумевал под объектами то, что сейчас называется "компонентами". Ну как в жджаве - есть функционально объединённые файлы, из которых торчат published-методы.
Хотя в классическом ООП конечно же объекты - это инстансы.
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Под обьектом он подразумевал существующую продолжительное время программную абстракцию, которая инкапсулирует свое состояние и принимает сообщения
источник

V

V in pro.elixir
А в турбо паскале ЕМНИП были и методы, и функции, разница между ними была в том, что функция возвращает значение, а метод - нет. При этом сайд-эффекты могли быть у обоих.
источник

ŹR

Źmićer Rubinštejn in pro.elixir
А что такое компонент - я честно говоря не знаю
источник

V

V in pro.elixir
Я под компонентом здесь имею ввиду программную абстрацию, состоящую более чем одного ООП-объекта.
Т.е. АК-объект может состоять из нескольких ООП-объектов, быть раскиданным по файлам и т.д.
И, допустим, можно назвать АК-объект компонентом. Потому что из них компонуется итоговая программа.
А можно назвать АК-объект не компонентом, а модулем, смысл примерно тот же.
Это к твоей фразе "ты не называешь модуль классом чтобы избежать ассоциаций с ООП". Если заменить "классом" на "объектом", то будет понятнее: "модуль" может означать как АК-объект, так и неймспейс/символ в эликсире.
Терминов в программировании не особо много, и они бывает заимствуются. Это нормально, я не считаю это критичным. Согласен, для ФП слово "функция" точнее, но и "метод" тоже допустимо, т.к. понятно, что в ФП this нет.
источник