Eğer bakarsanız IntFunctiondaha net hale gelebilir: IntFunction<R>is a FunctionalInterface. Bir alan intve bir tür değeri döndüren bir işlevi temsil eder R.
Bu durumda, dönüş türü Rde a FunctionalInterface, yani bir IntUnaryOperator. Dolayısıyla, birinci (dış) işlevin kendisi bir işlev döndürür.
Bu durumda: Bir uygulandığında int, curriedAddyine bir götüren bir işlev döndürecek gerekiyordu int(tekrar döner into en neyi çünkü IntUnaryOperatoryapar).
Fonksiyonel programlamada bir fonksiyonun tipini olarak yazmak yaygındır param -> return_valueve burada tam olarak bunu görürsünüz. Tipi Yani curriedAddolduğunu int -> int -> int(ya da int -> (int -> int)daha iyi gibi ise).
Java 8'in lambda sözdizimi bununla birlikte gider. Böyle bir işlevi tanımlamak için yazarsınız
a -> b -> a + b
gerçek lambda hesabına çok benzer:
λa λb a + b
λb a + btek bir parametre alan bve bir değer (toplam) döndüren bir işlevdir . λa λb a + btek bir parametreyi kabul eden ave tek bir parametrenin başka bir fonksiyonunu döndüren bir fonksiyondur. λa λb a + bdöner λb a + bile aparametre değerine set.