Tôi đã có một hàm có hai tham số, ví dụ:Splitting một inline tuple như tham số cho một hàm với đối số không tuple
let f a b = a = b
Sau đó, tôi có một chức năng thứ hai mà trả về một tuple:
let g = (a, b)
Tôi muốn chuyển a và b vào tuple từ g làm tham số cho f trong một dòng. Tôi có thể làm điều đó trong hai phát biểu, nhưng lý do tôi muốn làm điều này là chức năng gọi của tôi thực hiện hoặc tôi không muốn gọi f trừ khi trường hợp đầu tiên là sai, để tiết kiệm cho việc xử lý không cần thiết.
let calling =
someboolean ||
f g // want to split result of g to parameters for f without calling g twice
Mọi mẹo về cách thực hiện việc này? Tôi biết tôi có thể có một tuple thay thế, nhưng tôi muốn giữ lại các tùy chọn cho currying.
Tôi hy vọng tôi đã giải thích điều này đủ tốt. :)
[Đây là] (http://msdn.microsoft.com/en-us/library/dd233228.aspx Một danh sách tham chiếu tốt, có tổ chức của các ký hiệu và toán tử F #, nếu bạn cần thêm thông tin về các câu trả lời khác – Jwosty
Tôi đã đánh dấu một số câu trả lời nếu có thể, nhưng tôi đã chọn những gì tôi nghĩ là giải pháp thanh lịch nhất cho câu hỏi cụ thể.Điều đó nói rằng, tôi nghĩ rằng đề xuất của Thomas về tái cấu trúc các cuộc gọi f và g có lẽ là "đúng" nhất. Cảm ơn tất cả! – McMuttons