Trong Scala, tôi có thể định nghĩa một hàm với hai danh sách tham số.scala currying bởi các hàm lồng nhau hoặc bởi nhiều danh sách tham số
def myAdd(x :Int)(y :Int) = x + y
Điều này giúp dễ dàng xác định hàm được áp dụng một phần.
val plusFive = myAdd(5) _
Nhưng, tôi có thể thực hiện điều gì đó tương tự bằng cách xác định và trả về hàm lồng nhau.
def myOtherAdd(x :Int) = {
def f(y :Int) = x + y
f _
}
Thẩm mỹ, tôi đã di chuyển dấu gạch dưới, nhưng điều này vẫn cảm thấy như cà ri.
val otherPlusFive = myOtherAdd(5)
Tôi nên sử dụng tiêu chí nào để thích cách tiếp cận này hơn cách khác?
Cảm ơn, Daniel. Nhận xét của bạn về suy luận kiểu là động lực cho nhiều danh sách tham số là mở mắt. Điều này thực sự hữu ích. –
Động lực khác là viết các DSL tích hợp vào ngôn ngữ độc đáo, giống như 'using (x) {...}'. Mặc dù điều này không, phải thừa nhận, cũng sử dụng các loại truyền hình dành cho nhiều khối. –