Tôi hiện đang cố viết một ví dụ nhỏ cho các hàm số học nguyên thủy.Hiển thị sơ thẩm cho hàm
Mục tiêu ist để tạo danh sách các hàm có thể hiển thị.
Các chức năng rất đơn giản cho chương trình trông như thế:
showOp :: (Int -> Int -> Int) -> String
showOp op
| op 3 3 == 6 = "plus"
| op 3 3 == 0 = "minus"
| op 3 3 == 9 = "times"
| op 3 3 == 1 = "divide"
| otherwise = "undefined"
Nhưng tôi không thể có được một thể hiện của Hiện for (Int -> Int -> Int). Tôi đã thử nó như thế:
instance Show (Int -> Int -> Int) where
show op = show "asdf"
Nhưng nó không hoạt động. WinHugs chỉ trả lại Lỗi
Syntax error in instance head (variable expected)
Thậm chí có thể xác định Hiển thị cho các chức năng không? Nếu có, làm thế nào tôi có thể giải quyết vấn đề đó?
Điều đó nói rằng, không thể xác định 'Hiển thị' để thực sự cung cấp cho bạn thêm chi tiết về hàm. –
Chắc chắn rồi. Nó có thể hiển thị loại (được cho qua Typeable); hoặc nó có thể hiển thị một số đầu vào và đầu ra (như được thực hiện trong QuickCheck). –
... Có. Đuợc. Lấy làm tiếc. Tuy nhiên, không thể hiển thị việc triển khai hoặc tên. –