Apakah ada bahasa pemrograman (fungsional?) Di mana semua fungsi memiliki bentuk kanonik? Yaitu, setiap dua fungsi yang mengembalikan nilai yang sama untuk semua rangkaian input direpresentasikan dengan cara yang sama, misalnya jika f (x) mengembalikan x + 1, dan g (x) mengembalikan x + 2, maka f (f (x) )) dan g (x) akan menghasilkan executable yang tidak bisa dibedakan ketika program dikompilasi.
Mungkin yang lebih penting, di mana / bagaimana saya dapat menemukan lebih banyak informasi tentang representasi kanonik program (Googling "program representasi kanonik" kurang bermanfaat)? Sepertinya pertanyaan alami untuk ditanyakan, dan saya khawatir saya tidak tahu istilah yang tepat untuk apa yang saya cari. Saya ingin tahu apakah mungkin untuk bahasa seperti itu menjadi Turing lengkap, dan jika tidak, seberapa ekspresif bahasa pemrograman yang Anda miliki, sambil tetap mempertahankan properti seperti itu.
Latar belakang saya agak terbatas, jadi saya lebih suka sumber dengan prasyarat lebih sedikit, tetapi referensi ke sumber yang lebih maju mungkin keren juga, karena dengan begitu saya akan tahu apa yang ingin saya kerjakan.