Có ai biết nếu có một hàm trong Haskell mà làm điều gì đó như thế này:Chuyển đổi một chuỗi đến một Loại Constructor trong Haskell
"Int" -> Int
"String" -> String
"Bool" -> Bool
tức. nó lấy một biểu diễn chuỗi của một tên hàm dựng, và chuyển đổi nó thành một hàm tạo kiểu thực, cả trong một biểu thức và trong một mẫu.
chỉnh sửa: Mục tiêu tổng thể của tôi là để đơn giản hóa một cái gì đó như:
transExp (Add exp1 exp2) vars
= transExp exp1 vars ++ transExp exp2 vars ++ [IAdd]
transExp (Sub exp1 exp2) vars
= transExp exp1 vars ++ transExp exp2 vars ++ [ISub]
Into một mô hình phù hợp nhất, vì vậy về cơ bản chuyển đổi Add or Sub thành một chuỗi, thêm một chữ "I" vào phía trước, và chuyển đổi nó trở lại một loại.
Điều này có thể thực hiện được không? Không phải là loại khái niệm biên dịch thời gian sao? Bạn sẽ tìm kiếm loại chức năng nào? –
Tôi không biết liệu điều này là có thể hay không, tôi cho rằng nó sẽ có kiểu String -> a, nhưng tôi thực sự không chắc chắn ... – Jack
Hãy xem mẫu haskell sau đó. Ngoài ra 'IAdd' không phải là một kiểu mà là một hàm tạo kiểu - đó là gây hiểu nhầm. – nponeccop