Tôi đã tự hỏi làm thế nào bạn sẽ viết một phương thức trong Scala có hàm f
và một danh sách đối số args
trong đó mỗi arg là một phạm vi. Giả sử tôi có ba đối số (Range(0,2)
, Range(0,10)
và Range(1, 5)
). Sau đó, tôi muốn lặp lại trên f
với tất cả các khả năng của ba đối số đó.xác minh phân phối xác suất với các đối số biến tổng cộng 1
var sum = 0.0
for (a <- arg(0)) {
for (b <- arg(1)) {
for (c <- arg(2)) {
sum += f(a, b, c)
}
}
}
Tuy nhiên, tôi muốn phương pháp này hoạt động cho các hàm có số lượng đối số thay đổi. Điều này có thể không?
Chỉnh sửa: có cách nào để thực hiện điều này khi chức năng không lấy danh sách, nhưng thay vào đó có danh sách tham số chuẩn hoặc được thu thập?
Tôi nghĩ rằng có thể thông qua đệ quy, nhưng chỉ nếu 'f' chấp nhận danh sách các giá trị. –
Tôi đã hy vọng để giải quyết nó mà không có hạn chế này ('f' mất một danh sách tham số tiêu chuẩn hoặc là curried). – schmmd