Ben bir simülasyon / modelleme projesi başlatmak üzereyim. OOP'un bu tür projeler için kullanıldığını zaten biliyorum. Ancak Haskell'i incelemek beni bir bileşen sistemini modellemek için FP paradigmasını kullanmayı düşündürdü. Açıklayayım:
Diyelim ki bir veri kümesi (sıcaklık veya basınç, bir PDE ve bazı sınır koşulları gibi bir parametre) ile karakterize edilen A tipi bir bileşene ve farklı bir veri kümesi (farklı veya aynı parametre, farklı PDE ve sınır koşulları). Ayrıca, her bir bileşene uygulanacak işlevlerin / yöntemlerin aynı olduğunu varsayalım (örneğin bir Galerkin yöntemi). Nesnenin değişken durumu sabit olmayan parametreler için kullanılır.
Bir OOP yaklaşımı kullanacak olsaydım, her türün verilerini, PDE'yi çözme yöntemleri (burada kodun yeniden kullanımı için miras) ve PDE'nin çözümünü içine alan iki nesne yaratacağım.
Öte yandan, bir FP yaklaşımı kullanacak olsaydım, her bileşen veri parçalarına ve PDE'nin çözümünü elde etmek için veriler üzerinde etkili olacak işlevlere bölünürdü. Sabit olmayan parametreler, başka bir şeyin (örneğin zamanın) işlevleri olarak geçirilebilir veya bir çeşit değişebilirlik (değişebilirlik emülasyonu, vb.) İle ifade edilir. Bu yaklaşım, veriler üzerindeki doğrusal işlemlerin önemsiz olacağını varsayarak benim için daha basit görünüyor.
Sonuç olarak, FP yaklaşımını uygulamak OOP ile karşılaştırıldığında daha basit ve yönetilmesi daha kolay olur (pde'yi çözmek için farklı bir bileşen türü veya yeni bir yöntem ekleyin)?
C ++ / Fortran arka planından geliyorum, ayrıca profesyonel bir programcı değilim, bu yüzden yanlış yaptığım herhangi bir şeyde beni düzeltin.