Menurut pemahaman saya, fungsi parsial adalah fungsi yang kita dapatkan dengan melewatkan lebih sedikit parameter ke fungsi daripada yang diharapkan. Misalnya, jika ini secara langsung valid dengan Python:
>>> def add(x,y):
... return x+y
...
>>> new_function = add(1)
>>> new_function(2)
3
Dalam cuplikan di atas, new_function
adalah fungsi parsial. Namun, menurut Haskell Wiki , definisi fungsi parsial adalah
Fungsi parsial adalah fungsi yang tidak didefinisikan untuk semua argumen yang mungkin dari tipe yang ditentukan.
jadi, pertanyaan saya adalah: apa sebenarnya yang dimaksud dengan "fungsi parsial"?
partial
melakukan aplikasi parsial , sedangkan Haskell melakukannya secara otomatis. Entri wiki mengacu pada fungsi parsial , yang merupakan istilah dari matematika.
add 3 5
bukan aplikasi fungsi tunggal. Ini berlaku pertama add
untuk 3 untuk mendapatkan fungsi baru, yang kemudian diterapkan ke 5.
partial
metode adalah deklarasi maju dari metode pribadi yang diimplementasikan secara opsional di tempat lain dalam basis kode proyek.
new_function = functools.partial(add, 1)