Tôi đã chán một ngày và muốn tập thể dục bộ não của mình, vì vậy tôi quyết định thực hiện 99 Haskell Problems nhưng hạn chế bản thân để làm chúng theo kiểu không có điểm. Một vấn đề mà dường như cắt lên rất nhiều khi tôi đang làm những việc theo kiểu không điểm là: Làm thế nào để bạn áp dụng nhiều hàm cho cùng một giá trị trong khi vẫn giữ mỗi kết quả như một thực thể độc lập? Sử dụng ký hiệu nhọn:Áp dụng nhiều chức năng cho cùng một kiểu điểm không có giá trị trong Haskell
foobar x = [id x, reverse x]
Và những gì tôi đã đưa ra cho đến nay trong ký hiệu điểm miễn phí:
foobar' = `map` [id, reverse] ($ x)
tôi dường như không thể nhận được rằng x
ra khỏi cuối của đó.
Chỉ khi bạn ok với những hạn chế. Điều này sẽ không hoạt động cho tất cả các công dụng. –
@ ThomasM.DuBuisson: những hạn chế nào? –
@BenMillwood Tôi đang đề cập đến các ràng buộc về kiểu chữ. Câu trả lời của JohnL là kiểu 'a -> [a]'. Câu trả lời này, trong khi tốt đẹp và sạch sẽ, là loại 'Monad ((-> a) => a -> [a]'. –