Tôi hiện đang là sinh viên đang học về mô hình phản ứng chức năng sử dụng F #. Đó là quan điểm hoàn toàn mới đối với tôi. Hôm qua tôi đã học về việc tạo ra một trò chơi ping-pong đơn giản bằng cách sử dụng mô hình này. Ý tưởng tôi nắm bắt cho đến nay là: chúng tôi nghĩ rằng các giá trị là hàm của thời gian. Trên hình thức thuần khiết, nó không trạng thái. Tuy nhiên, tôi cần nhớ vị trí của quả bóng (hoặc trạng thái). Vì vậy, tôi luôn chuyển vị trí hiện tại của quả bóng thành tham số của hàm toàn cục.Chức năng phản ứng F # - Lưu trữ các trạng thái trong trò chơi
Nếu chúng ta nói về trò chơi phức tạp hơn một chút, giống như Space Invaders, chúng tôi có rất nhiều tiểu bang (vị trí, người ngoài hành tinh người ngoài hành tinh hiện tại HP, số bom còn lại, vv)
Có một tao nhã/tốt nhất cách để giải quyết vấn đề này? Chúng ta có luôn lưu trữ các trạng thái ở cấp cao nhất không? Tất cả các trạng thái hiện tại có nên được đưa ra như là đối số đầu vào bổ sung của hàm toàn cục không?
Ai có thể giải thích điều này bằng cách sử dụng mẫu đơn giản trên F #? Cảm ơn rất nhiều.
Đây chủ yếu là về một đơn vị trạng thái. Chức năng lập trình phản ứng thường liên quan đến monads, nhưng thường không phải là loại đơn giản này của nhà nước monad. – RD1
Như tôi đã nói, tôi chưa có kinh nghiệm về FRP. Tuy nhiên, đơn nguyên trạng thái (hoặc monads) dường như là khái niệm đã được yêu cầu - lưu trữ và sửa đổi dữ liệu ngữ cảnh một cách thuận tiện mà không làm mất tính minh bạch tham chiếu. Nếu FTP đã sử dụng một cơ sở hạ tầng đơn điệu, thì càng nhiều càng tốt. Một biến áp đơn vị nhà nước nên làm điều (bạn có nghĩa là với * loại đơn giản *?). Nhưng mà không giải thích nguyên tắc cơ bản, thông tin này sẽ vô dụng! – Dario
Điểm chính của FRP là cho phép các hành vi được định nghĩa là các hàm liên tục của thời gian - ví dụ: bạn có thể xác định vị trí z của một quả bóng dưới lực hấp dẫn như z (t) = 9,8 * t * t. Trạng thái monadic chỉ liên quan đến trạng thái tạo ra những thay đổi rời rạc - những thay đổi rời rạc cũng được cho phép trong FRP, nhưng chúng ít trung tâm hơn và thường chúng không phù hợp với hình thức chính xác của một đơn nguyên. – RD1