Tôi chỉ học Haskell thôi. Tôi nghĩ điều này sẽ tạo ra một chức năng thừa ...Vòng lặp vô hạn trong haskell? (newbie)
(trong vòng ghci)
Prelude> let ft 0 = 1
Prelude> let ft n = n * ft (n - 1)
Prelude> ft 5
(bị treo vô thời hạn, cho đến^C).
Ai đó có thể chỉ cho tôi đúng hướng không?
Cảm ơn!
Nói cách khác, những gì bạn đã viết là (hầu như) đúng Haskell; vấn đề là GHCI chấp nhận cú pháp khác với cú pháp bạn đưa vào một tệp nguồn riêng biệt. Nếu bạn đặt hai dòng đó, nhưng không có từ 'let' (đó là" gần như "), trong tệp Factorial.hs, thì trong GHCI, hãy nhập: ': load Factorial' sau đó 'ft 5' bạn sẽ nhận được 120. Không biết nếu bạn đã đi qua "ký hiệu" chưa (ví dụ cho I/O), nhưng cú pháp được cho phép tại dấu nhắc GHCI là giống như những gì được cho phép bên trong một làm khối. –