หากดูIntFunctionแล้วอาจจะชัดเจนขึ้น: IntFunction<R>คือFunctionalInterface. แสดงถึงฟังก์ชันที่ใช้intและส่งกลับค่าของชนิดRและส่งกลับค่าของชนิด
ในกรณีนี้ประเภทการส่งคืนRยังเป็น a FunctionalInterfaceกล่าวคือIntUnaryOperator. อย่างแรกฟังก์ชัน (ภายนอก) จะส่งคืนฟังก์ชัน
ในกรณีนี้: เมื่อนำไปใช้กับint, curriedAddควรจะกลับมาอีกครั้งที่ฟังก์ชั่นใช้เวลาอีกด้วยint(และผลตอบแทนอีกครั้งintเนื่องจากว่าสิ่งที่IntUnaryOperatorไม่)
ในการเขียนโปรแกรมเชิงฟังก์ชันเป็นเรื่องปกติที่จะเขียนประเภทของฟังก์ชันเป็นparam -> return_valueและคุณจะเห็นว่าที่นี่ ประเภทของcurriedAddคือint -> int -> int(หรือint -> (int -> int)ถ้าคุณชอบแบบนั้นดีกว่า)
ไวยากรณ์แลมด้าของ Java 8 เป็นไปตามนี้ ในการกำหนดฟังก์ชันดังกล่าวคุณต้องเขียน
a -> b -> a + b
ซึ่งคล้ายกับแคลคูลัสแลมบ์ดาจริงมาก:
λa λb a + b
λb a + bเป็นฟังก์ชันที่รับพารามิเตอร์เดียวbและส่งกลับค่า (ผลรวม) λa λb a + bเป็นฟังก์ชันที่รับพารามิเตอร์เดียวaและส่งคืนฟังก์ชันอื่นของพารามิเตอร์เดียว λa λb a + bส่งกลับλb a + bพร้อมaตั้งค่าเป็นค่าพารามิเตอร์