Tại sao mã Haskell sau không chấm dứt:Tại sao mã Haskell này không chấm dứt?
foldr (||) True $ repeat False -- never terminates
khi một cái gì đó như thế này không:
foldr (||) False $ repeat True -- => True
Đối với tôi, đó là biểu hiện thứ hai để được trông rắc rối hơn không chấm dứt. Có gì sai với quan điểm của tôi về đánh giá lười biếng của Haskell?
bạn luôn có thể sử dụng stepeval cho các loại sự cố này. phải mất một giây để decypher, nhưng có thể hữu ích. http://bm380.user.srcf.net/cgi-bin/stepeval.cgi?expr=foldr+%28%7C%7C%29+True+%24+repeat+False – gatoatigrado
Tôi đã viết stepeval và không đánh giá biểu thức đó chính xác! Nó có một vài lỗi, tôi sợ (trong trường hợp này nó quên 'let' mặc dù nó vẫn cần nó) –