Tôi chỉ vừa mới nhúng ngón chân vào thế giới của Haskell như một phần trong hành trình lập trình của tôi (chuyển từ, thủ tục sang OOP để đồng thời với chức năng hiện tại).Tìm hiểu bản đồ Haskell, nếp gấp, vòng lặp và đệ quy
Tôi đã thử trực tuyến Haskell Evaluator.
Tuy nhiên tôi là bây giờ bị mắc kẹt trên một vấn đề:
Tạo một chức năng đơn giản mà mang lại cho tổng của một dãy số.
Trong một ngôn ngữ thủ tục này đối với tôi là đủ dễ dàng (sử dụng đệ quy) (C#):
private int sum(ArrayList x, int i)
{
if (!(x.Count < i + 1)) {
int t = 0;
t = x.Item(i);
t = sum(x, i + 1) + t;
return t;
}
}
Tất cả tuy nhiên thất bại của tôi rất tốt tại Haskell là như sau:
let sum x = x+sum in map sum [1..10]
này dẫn đến lỗi sau (từ trang web được đề cập ở trên):
Occurs check: cannot construct the infinite type: a = a -> t
Xin lưu ý rằng tôi chỉ sử dụng Haskell trong 30 phút qua!
Tôi không chỉ đơn giản là tìm câu trả lời mà còn giải thích thêm về nó.
Đây là giải thích toàn diện mà tôi đang tìm kiếm. Sau khi đọc và đọc thêm, giờ tôi đã hiểu nó tốt hơn một chút. – Darknight