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