Tôi mới dùng elm và lập trình chức năng nói chung. Nhưng tôi đang sử dụng elm và tôi thực sự cần một chức năng có một tín hiệu (List String) như là một đầu vào và trả về List (Signal String).Chức năng Elm với loại: Tín hiệu (Danh sách a) -> Danh sách (Tín hiệu a)
Tôi biết tôi có lẽ không nên có vấn đề này với thiết kế kiến trúc tốt hơn trong chương trình của tôi nhưng có một chức năng có thể làm điều này sẽ giải quyết được một vấn đề lớn đối với tôi.
Các kết hợp chức năng không hoàn toàn ngược lại:
combine : List (Signal a) -> Signal (List a)
combine = List.foldr (map2 (::)) (constant [])
Tôi đã cố gắng để làm một cái gì đó tương tự như kết hợp chức năng nhưng đã không thành công cho đến nay. Bất kỳ ý tưởng về cách tạo ra chức năng như vậy?
Cảm ơn bạn @Apanatshka cho câu trả lời của bạn. Tôi hiểu rằng danh sách cần phải có kích thước tĩnh, nhưng vì tôi bướng bỉnh tôi muốn tiếp tục cố gắng và thay đổi chức năng uncombine thành: 'uncombine: Tín hiệu (Danh sách) -> Danh sách (Tín hiệu a) uncombine sig = nếu (Signal.map isEmpty sig) thì [] khác Signal.map (List.head >> không an toàn) sig :: uncombine (n-1) (Signal.map (List.tail >> unsafe) sig) '. Nhưng tôi nhận được lỗi không khớp loại vì mệnh đề if muốn giá trị Bool nhưng nhận giá trị Signal Bool. Có một số giải pháp cho vấn đề này không? –
Không, không có giải pháp thay thế. Những gì bạn đang cố gắng là không thể. – Apanatshka