Đây là vấn đề mà tôi có thể dễ dàng giải quyết một cách phi chức năng.Tìm đường đi ngắn nhất giữa hai điểm trên lưới, sử dụng Haskell
Nhưng giải quyết nó trong Haskell là cho tôi những vấn đề lớn. Tôi không có kinh nghiệm khi nói đến lập trình chức năng chắc chắn là một lý do.
Sự cố:
Tôi có trường 2D được chia thành các hình chữ nhật có kích thước bằng nhau. Một lưới đơn giản. Một số hình chữ nhật là khoảng trống (và có thể được chuyển qua) trong khi các hình chữ nhật khác là không thể vượt qua được. Đặt hình chữ nhật bắt đầu A và hình chữ nhật đích B, làm cách nào để tính đường đi ngắn nhất giữa hai hình ảnh? Phong trào chỉ có thể theo chiều dọc và chiều ngang, theo từng bước một hình chữ nhật lớn.
Làm cách nào để tôi hoàn thành việc này trong Haskell? Đoạn mã chắc chắn chào đón, nhưng cũng chắc chắn không cần thiết. Và các liên kết đến các tài nguyên khác cũng rất được hoan nghênh!
Cảm ơn!
Điều này chắc chắn âm thanh của thuật toán Dijkstra, hoặc ít nhất là một biến thể của nó. – MatrixFrog
Âm thanh như thuật toán A *. (Tôi dường như không thể đăng liên kết wikipedia chính xác). – CiscoIPPhone