Хотя, я могу задуматься над вещами, и есть способ сделать это, как вы предлагаете. Я не могу видеть это прямо сейчас, хотя
отал над языком, но с точки зрения интеграции .NET мне удалось только пока заставить работать примитивные типы. Прошлой ночью у меня была хорошая идея - вместо того, чтобы пытаться выяснить, что именноSystem.Type
кортежи, модули и функции должны быть во время проверки типов, вместо этого я могу получитьSystem.Type
изSystem.Object
и добавить некоторые метаданные, которые соответствуют моим собственным сложным языковым типам. То, что имеет значение, не является точнымSystem.Type
Я бы добавил к ним метаданные, но каждый из заменителей типов в моем языке отличается друг от друга.
Причина в том, что мне нужно это то, что я использую функции из пространства имен отражения для интеграции, которая включает в себя жонглированиеSystem.Type
s.
type SpiralType =
| IntT
| StringT
| TupleT of SpiralType list
,В качестве примера, что я хотел бы добавить кSystem.Type
будет экземплярами вышеупомянутого распознаваемого типа объединения F # для обеспечения уникальности.
Что было бы лучшим способом сделать это?