Sesuai Wikipedia:
Dalam pemrograman komputer, fungsi dapat digambarkan sebagai murni jika kedua pernyataan ini tentang fungsi ditahan: Fungsi selalu mengevaluasi nilai hasil yang sama mengingat nilai argumen yang sama. Nilai hasil fungsi tidak dapat bergantung pada informasi atau keadaan tersembunyi yang dapat berubah saat eksekusi program berlangsung atau antara berbagai eksekusi program, juga tidak dapat bergantung pada input eksternal dari perangkat I / O. Evaluasi hasil tidak menyebabkan efek samping atau keluaran yang dapat diamati secara semantik, seperti mutasi objek yang dapat berubah atau keluaran ke perangkat I / O.
Saya bertanya-tanya apakah mungkin untuk menulis fungsi yang menghitung apakah suatu fungsi murni atau tidak. Contoh kode dalam Javascript:
function sum(a,b) {
return a+b;
}
function say(x){
console.log(x);
}
isPure(sum) // True
isPure(say) // False
if (rand(1000000)<2) return WRONG_ANSWER
, menyelidiki fungsi berkali-kali untuk perilaku yang konsisten tidak akan membantu. Tetapi, jika Anda memiliki akses ke definisi fungsi, buktinya sepele.
say
panggilan console.log
yang tidak say
murni juga tidak murni.