Я пытаюсь пропустить тип данных, SET, который содержит другие типы данных, включая сам, и распечатывать эти типы данных с помощью цикла.sml list [tycon несоответствие] операнд и оператор не согласны
fun printEXP(SET(hd::tl::[])) =
let
fun loop (hd::tl) = printEXP(hd):: loop tl | loop [] = [];
in() end;
...
У меня возникла ошибка несоответствия tycon, и я не уверен, как ее исправить. Что я делаю неправильно в своей функции цикла?
operator domain: EXP list
operand: EXP
где
datatype EXP = SET of EXP list;
Ваша ошибка в строке 3, а точнее 'printEXP (hd)'. Это потому, что 'hd' имеет тип EXP, и ваша функция принимает список EXP. – rshah