Anda memprogram di dalamnya! Lihatlah pengkodean gereja . Anda dapat melihat bagaimana hampir semua aritmatika dapat dilakukan yang mungkin harus meyakinkan Anda bahwa itu sangat kuat. Saya suka melihat operasi pada daftar. Anda dapat mendefinisikan sebagian besar struktur data apa pun dalam hal fungsi yang melakukan operasi paling penting di dalamnya.
Misalnya, penyandian daftar adalah fungsi lipatan yang terlipat di atasnya. Perhatikan ini bukan penyandian Gereja, tetapi yang saya dapatkan dari jenis dan bahasa pemrograman Percie. Pengkodean pasangan Gereja tidak memberi kita rekursi, kita harus menambahkannya kembali ke dalam diri kita sendiri dengan semacam kombinasi rekursi.
jadi daftar membutuhkan dua argumen, fungsi untuk melakukan pelipatan, dan nilai awal untuk dipasang ke flip pada beberapa titik.
cons x xs = lam f. lam a. f x (xs f a)
nil = lam f. lam a. a
sekarang kita dapat mendefinisikan penjumlahan yang diberi fungsi add (lihat pengkodean gereja dari atas)
sum xs = xs add 0
kita bisa melakukan lebih banyak dan mendefinisikan fungsi peta
consApply f x xs = cons (f x) xs
map f xs = xs (consApply f) nil
jika Anda masih tidak yakin bahwa ada perhitungan yang terjadi di sini dan ingin memastikan bahwa Anda dapat melakukan perhitungan apa pun maka periksa kombinator titik tetap . Ini agak menyakitkan kepala saya untuk berpikir tentang kadang-kadang namun jadi saya tidak yakin saya akan menyebutnya intuitif tetapi jika Anda secara manual mengevaluasinya dengan beberapa argumen Anda dapat melihat apa yang sedang terjadi.