Saya cukup yakin semua orang akrab dengan metode generik formulir:
T DoSomething<T>(T item)
Fungsi ini juga disebut parametrically polymorphic (PP), khususnya peringkat-1 PP.
Katakanlah metode ini dapat direpresentasikan menggunakan objek fungsi dari bentuk:
<T> : T -> T
Artinya, <T>
berarti dibutuhkan satu parameter tipe, dan T -> T
berarti ia mengambil satu parameter tipe T
dan mengembalikan nilai dari tipe yang sama.
Maka yang berikut ini adalah fungsi peringkat-2 PP:
(<T> : T -> T) -> int
Fungsi tidak mengambil parameter tipe itu sendiri, tetapi mengambil fungsi yang mengambil parameter tipe. Anda dapat melanjutkan ini secara iteratif, membuat sarang semakin dalam, semakin dalam, mendapatkan PP dengan peringkat yang lebih tinggi dan lebih tinggi.
Fitur ini sangat jarang di antara bahasa pemrograman. Bahkan Haskell tidak mengizinkannya secara default.
Apakah itu berguna? Bisakah itu menggambarkan perilaku yang sulit untuk dijelaskan sebaliknya?
Juga, apa artinya sesuatu menjadi tidak bijaksana ? (pada konteks ini)
let sdff = (g : (f : <T> (e : T) => void) => void) => {}