Итак, у меня есть несколько вариантов типов в списке:
type VariableType
= BooleanVariable
| ContinuousVariable
| CategoricalVariable
| Incorrect
mylistone = [ContinuousVariable, ContinuousVariable, ContinuousVariable]
mylisttwo = [ContinuousVariable, ContinuousVariable, CategoricalVariable]
Мне нужно, чтобы функция была определена следующим образом:
listtype : List VariableType -> VariableType
listtype list =
-- if (List.all isBooleanVariable list) then
BooleanVariable
-- else if (List.all isContinuousVariable list) then
ContinuousVariable
-- else
CategoricalVariable
Итак, вывод этих двух списков определен вышедолжно быть:
listtype mylistone -- ContinuousVariable
listtype mylisttwo -- CategoricalVariable
Но я читал, что невозможно проверить типы после типа компиляции из-за удаления типа.Как я могу определить isBooleanVariable
и isContinuousVariable
?