Tôi muốn chơi xung quanh với thư viện Lens
một chút. Tôi đã tải nó vào GHCi và tạo ra một kiểu dữ liệu kỷ lục với dấu gạch thích hợp:Tôi làm cách nào để tạo các ống kính từ một bản ghi trong GHCi
> data Foo a = Foo {_arg1 :: Int, _arg2 :: [a]}
Tôi muốn làm cho ống kính cho Foo
sử dụng makeLenses
mẫu. Tôi muốn làm điều này mà không cần phải đọc qua toàn bộ tập hợp Template-Haskell docs.
Tôi có thể nhập câu lệnh nào vào lời nhắc GHCi để làm việc này?
Điều đáng nói rằng 'makeLenses' gọi phải đi trong * cùng * ': {' khối như việc khai báo dữ liệu! Điều đó đã ném tôi cho một vòng lặp cho đến khi tôi figured nó ra. – kqr
Đó là đủ để có _any_ tuyên bố trong: {khối cùng với 'makeLenses', (nó không phải là khai báo AST). Theo như tôi hiểu, thì ghci sẽ mở rộng danh sách khai báo 'makeLenses'. Nếu chỉ có một câu lệnh trong: {block, sau đó nó cố gắng mở rộng nó thành biểu thức, đưa ra lỗi không khớp loại. – max630