Chức năng này cho phép người dùng nhập danh sách các chuỗi. Hàm này có độ dài và cho phép người dùng nhập thêm 1 dòng nữa. Sau đó, mỗi dòng được kiểm tra để đảm bảo nó có cùng chiều dài với dòng gốc. Mã:Đọc HaskellKhông có lỗi phân tích cú pháp
readme :: IO [Line]
readme = do
line <- readLn
let count = length line
lines <- replicateM (count-1) $ do
line <- readLn
if length line /= count
then fail "too long or too short"
else return line
return $ line : lines
Dòng thuộc loại Chuỗi.
Khi tôi cố gắng chạy hàm và nhập .. nói ["12", "13"] Tôi nhận được thông tin sau: * Ngoại lệ: lỗi người dùng (Prelude.readIO: không phân tích cú pháp) và tôi không thể tìm ra lý do tại sao, bất kỳ ý tưởng nào?
Readme cơ bản được sử dụng để kiểm tra đầu vào của một hình vuông Sudoku để đảm bảo các dòng có cùng độ dài, tức là nhập ["1", "2", "3"] có nghĩa là thêm 2 dòng nữa nó sẽ là một lưới 3x3) và cả hai trong số đó nên có chiều dài 3. – gdrules
Giải quyết nó - cảm ơn :) – gdrules