Я слышал это снова и снова, и я пытаюсь понять и подтвердить идею о том, что FP и OO ортогональны.
Прежде всего, что означает ортогональность двух концепций. ?
FP поощряет неизменность и чистоту, насколько это возможно, в то время как объектно-ориентированный объект, кажется, создан для состояний и мутаций - слегка организованная версия императивного программирования? Я понимаю, что объекты могут быть неизменными, но объектно-ориентированный объект, кажется, подразумевает для меня состояние / изменение.
Они кажутся противоположностями. Как это влияет на их ортогональность?
Такой язык, как Scala, упрощает выполнение как объектно-ориентированного программирования, так и функционального программирования, влияет ли это на ортогональность двух методов?