İlişkiler.
Arkadaş: İki kişi göz önüne alındığında, bir arkadaş ilişkisi bu genel yasalara uyar
- Birbirinize karşı iyi niyetiniz olsun
- Birbirlerinin onlar için bir arkadaş olduğunu düşünüyor (bu nedenle yasalar bu ilişkide her iki üye tarafından yerine getirilmelidir)
- Birbirleriyle zaman geçirmekten hoşlanır
Monoid: Birden fazla öğe ve 2 öğeyi alan ve 1 döndüren bir işlev verildiğinde, monoidal bir ilişki bu genel yasalara uyar
- Herhangi bir öğeyle birlikte işleve iletilen bu öğelerden biri (yalnızca kimlik denir) vardır, işlevin her zaman diğer öğeyi döndürmesini sağlar (0 + 1 = 1, bu nedenle 0, öğeler sayı olduğunda ve işlevi ekleme)
- Fonksiyon, üzerinde monoidal bir ilişki kurduğu sette olmayan öğeleri çalıştıramaz veya iade edemez
- İşlev ilişkiseldir ve öğelerle bir şekilde bağımsız bir şekilde kullanılabilir, bu, a * (b * c) = (a * b) * c anlamına gelir; bu, a'yı b * c veya c sonucuyla çarpabileceğinizi belirtir. a * b sonucuyla sonuçlanırsa, sonuç hangisini yaparsanız yapın aynı olur.
İşlevsel programlama tamamen genellemelerle ilgilidir, arkadaş sayısız senaryoda görülebilen çok genel bir ilişkidir, ancak çeşitli biçimlerde genellikle yukarıdaki yasalara uyar.
Nesneler arasındaki ilişkileri düzenleyen yasaları kabul ederek, bu tür bir ilişkiye sahip olan her tür şey üzerinde çalışan genel uygulamalar oluşturabilirsiniz. Fonksiyonel programlamada, nesneler arasındaki ilişkileri, genel olarak sınıflandırılabilmeleri ve tedavi edilebilmeleri için belirlemeye çalışırsınız.
Gerçek dünyadan bir metafor mu istiyorsunuz? İşlerin nasıl ilişkili olduğuna bakın ve genel yasaları belirlemeye çalışın (yasalar dışındaki şeylerin değişebileceği birden çok senaryoda olduğu gibi). Bir mağazadaki bir kayıt memuru ile alışveriş yapan arasında bir ilişki vardır, bazı genel yasaları vardır, POS sistemleri yolunda bu genel ilişkide insanların hedeflerini kolaylaştırmak için yazılım geliştirilmiştir. Benzer şekilde, işlerin nasıl ilişkili olduğunu belirleyen bu genel yasaları görmeye başladığınızda, bir ilişkinin örneğinin belirli ayrıntılarından ziyade yazılımınızı yazarken bu ilişkilerin yasalarına güvenmeye başlayabilirsiniz.