Tôi khá mới đối với lập trình Haskell và tôi không hiểu tại sao tôi nhận được lỗi này trong mã của mình.Haskell: lỗi từ vựng trong chuỗi ký tự/ký tự ở ký tự 'i'
Sự cố của tôi như sau: Bất kỳ số nguyên dương nào i có thể được biểu thị bằng i = 2^n * k, trong đó k là số lẻ, tức là, với lũy thừa là 2 lần một số lẻ. Chúng tôi gọi n số mũ là 2 trong i. Ví dụ, số mũ của 2 trong 40 là 3 (vì 40 = 2^3 * 5) trong khi số mũ của 2 trong 42 là 1. Nếu tôi là số lẻ, thì n là số không. Nếu, mặt khác, tôi là ngay cả, có nghĩa là nó có thể được chia cho 2. Viết một hàm exponentOfTwo cho fi nding số mũ của 2 trong đối số của nó.
Tôi hiểu psuedocode và nó có vẻ khá đơn giản: đệ quy chia i 2 cho đến khi kết quả là số lẻ, số lần phân chia xảy ra là n
đây là mã của tôi (dòng 31-32):
exponentOfTwo :: Int -> Int
exponentOfTwo i = if odd i then 0 else 1 + exponentOfTwo (i 'div' 2)
tôi nhận được thông báo lỗi "lỗi từ vựng trong chuỗi/ký tự chữ ở nhân vật 'i'" trên dòng 32 cột 62.
tôi đã cố gắng tìm kiếm một giải pháp cho lỗi này ở khắp mọi nơi và cho đến nay Tôi không có may mắn.
Oh wow đó là một sửa chữa dễ dàng, bây giờ tôi cảm thấy ngớ ngẩn. Tôi không bao giờ biết rằng phải như vậy. Cảm ơn nhiều! – Gus