Czy ktoś wie, czy istnieje funkcja w Haskell, który robi coś takiego:Konwersja String na typ Konstruktora w Haskell
"Int" -> Int
"String" -> String
"Bool" -> Bool
tj. pobiera ciąg znaków reprezentujący nazwę konstruktora typu i konwertuje go do faktycznego konstruktora typów, zarówno w wyrażeniu, jak i we wzorcu.
edit: Moim nadrzędnym celem jest uproszczenie coś takiego:
transExp (Add exp1 exp2) vars
= transExp exp1 vars ++ transExp exp2 vars ++ [IAdd]
transExp (Sub exp1 exp2) vars
= transExp exp1 vars ++ transExp exp2 vars ++ [ISub]
w jednym meczu wzór, więc w zasadzie konwersji Dodaj lub Sub na sznurku, dodać „ja” do przodu, i konwertować to z powrotem do typu.
Czy to możliwe? Czy typy nie są koncepcją kompilacji? Jakiego rodzaju funkcji chciałbyś mieć? –
Nie mam pojęcia, czy jest to możliwe, czy nie, przypuszczam, że miałoby to typ String -> a, ale nie jestem pewien ... – Jack
Spójrz na szablon haskell. Również 'IAdd' nie jest typem, ale konstruktorem typu - to było mylące. – nponeccop