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