Hubungan.
Teman: Diberi dua orang, hubungan pertemanan mengikuti hukum umum ini
- Memiliki niat baik satu sama lain
- Berpikir satu sama lain adalah teman mereka (jadi hukum harus dipenuhi oleh kedua anggota dalam hubungan ini)
- Nikmati menghabiskan waktu satu sama lain
Monoid: Diberikan beberapa item dan fungsi yang mengambil 2 item dan mengembalikan 1, hubungan monoid mengikuti hukum umum ini
- Ada salah satu item (hanya satu, yang disebut identitas) yang dilewatkan ke fungsi dengan item lain akan memastikan fungsi selalu mengembalikan item lainnya (0 + 1 = 1, sehingga 0 adalah identitas ketika item adalah angka dan fungsi adalah tambahan)
- Fungsi tidak dapat beroperasi atau mengembalikan item yang tidak ada dalam set yang memiliki hubungan monoid
- Fungsi ini asosiatif dan dapat digunakan dengan item dalam urutan yang agak independen, ini berarti a * (b * c) = (a * b) * c yang mengatakan Anda dapat mengalikan dengan hasil b * c atau c dengan hasil a * b dan hasilnya akan sama mana yang Anda lakukan pertama kali.
Pemrograman fungsional adalah semua tentang generalisasi, teman adalah hubungan yang sangat umum yang dapat dilihat dalam banyak skenario, tetapi dalam semua berbagai format umumnya mengikuti undang-undang di atas.
Menyadari undang-undang yang mengatur hubungan antara berbagai hal, Anda dapat membuat implementasi umum yang bekerja pada segala format hal yang memiliki jenis hubungan tersebut. Dalam pemrograman fungsional Anda mencoba mengidentifikasi hubungan antara hal-hal sehingga mereka dapat diklasifikasikan dan diperlakukan secara umum.
Anda ingin metafora dari dunia nyata? Lihatlah bagaimana berbagai hal terkait dan cobalah untuk mengidentifikasi hukum umum (seperti yang berlaku untuk beberapa skenario di mana hal-hal selain hukum mungkin berbeda). Ada hubungan antara petugas registrasi dan pembelanja di toko, ia memiliki beberapa hukum umum, perangkat lunak telah dikembangkan untuk memfasilitasi tujuan orang-orang dalam hubungan umum di jalan sistem POS. Demikian pula ketika Anda mulai melihat undang-undang umum ini menentukan bagaimana hal-hal terkait, Anda dapat mulai mengandalkan undang-undang hubungan tersebut dalam menulis perangkat lunak Anda dan bukan pada hal-hal khusus dari contoh hubungan.