Size: a a a

Saint P Ruby Community

2019 December 02

SM

Sergei Maximov in Saint P Ruby Community
Igor Morozov
А что есть из популярного, кроме монадок?

Я видел Context из гема Interactor, к примеру. Вот как такое описать?
Это контейнер для хранения произвольной информации + флаг-состояние, которое характеризует "успешность" вычисления (это то, что я понял из ридми).
источник

IM

Igor Morozov in Saint P Ruby Community
да даже непопулярного. что ещё велосипедят?
источник

IM

Igor Morozov in Saint P Ruby Community
Sergei Maximov
Это контейнер для хранения произвольной информации + флаг-состояние, которое характеризует "успешность" вычисления (это то, что я понял из ридми).
а какого ридми? драй-монад?
источник

SM

Sergei Maximov in Saint P Ruby Community
Igor Morozov
а какого ридми? драй-монад?
Interactor
источник

ЕЗ

Евгений Зубаиров in Saint P Ruby Community
Sergei Maximov
Это контейнер для хранения произвольной информации + флаг-состояние, которое характеризует "успешность" вычисления (это то, что я понял из ридми).
А разве это не является как раз определением ResultObject'а? Он умеет отвечать, выполнена операция успешно или нет, плюс хранит произвольный контекст.
источник

ЕЗ

Евгений Зубаиров in Saint P Ruby Community
class ResultObject
 attr_reader :status, :context

 def initialize(status:, context: nil)
   @status = status
   @context = context
 end

 def success?
   status
 end

 def fail?
   !status
 end
end

Типа, вот такая штука ж будет ResultObject'ом.
источник

SM

Sergei Maximov in Saint P Ruby Community
Евгений Зубаиров
А разве это не является как раз определением ResultObject'а? Он умеет отвечать, выполнена операция успешно или нет, плюс хранит произвольный контекст.
Result (если мы говорим о монаде) хранит всегда только одно значение, которое является результатом вычисления. Context из Interactor может хранить всякие произвольные данные, которые могут использоваться только как промежуточные результаты.
источник

ЕЗ

Евгений Зубаиров in Saint P Ruby Community
Изначальный вопрос был как раз про ResultObject, не про монаду Result прост.
источник

IM

Igor Morozov in Saint P Ruby Community
А что отличает монаду от резалт обжекта?
источник

SM

Sergei Maximov in Saint P Ruby Community
Евгений Зубаиров
Изначальный вопрос был как раз про ResultObject, не про монаду Result прост.
Тогда разница в том, что ResultObject хранит только результат вычислений, а не промежуточные результаты, метаданные и проч.
источник

SM

Sergei Maximov in Saint P Ruby Community
Igor Morozov
А что отличает монаду от резалт обжекта?
Не всякий ResultObject является монадой, любая (наверно) монада может выступать роль ResultObject'а
источник

v

vveare138 in Saint P Ruby Community
Igor Morozov
А что отличает монаду от резалт обжекта?
в том что у монады есть fmap?
источник

IM

Igor Morozov in Saint P Ruby Community
vveare138
в том что у монады есть fmap?
раскрой тему, пожалуйста
источник

IM

Igor Morozov in Saint P Ruby Community
фмап это ж от функторов. я на свой резалт обжект могу задать map и будет всё нормально
источник

IM

Igor Morozov in Saint P Ruby Community
только монадой он от этого не станет)
источник

SM

Sergei Maximov in Saint P Ruby Community
Igor Morozov
только монадой он от этого не станет)
В современном хаскиле же вроде любая монада обязана быть функтором  )
источник

IM

Igor Morozov in Saint P Ruby Community
Ну само определение монады намекает, тут не в хаскеле дело
источник

SM

Sergei Maximov in Saint P Ruby Community
источник

SM

Sergei Maximov in Saint P Ruby Community
Igor Morozov
Ну само определение монады намекает, тут не в хаскеле дело
Ну так смотри определение монады и сравнивай его в определением ResultObject (только дай сначала чёткое определение ResultObject)
источник

IM

Igor Morozov in Saint P Ruby Community
а вот я и в поисках определния резалт обжект.

я для резалтов юзал только монатки, у меня очень ограниченный взгляд на мир
источник