2017-02-09 3 views
0

Я работаю над функцией для класса, и я получаю эту ошибку.Оператор и операнд не согласны ML

Ошибка: оператор и операнд не согласен [tycon несовпадение]

домена Оператор: 'список Z

операнд:' список Y -> «список Y

в выражении: нуль tl

fun removedub(L) = 
    if (null L) then nil 
    else if (null tl(L)) then hd(L) 
    else if hd(L) = hd(tl(L)) then removedub(tl(L)) 
    else hd(L) :: removedub(tl(L)); 



val list = ["a", "a", "b", "b", "c"]; 

removedub(list); 

Я не уверен, как исправить это или действительно причинить ему какие-либо советы?

ответ

0

Вы неправильно установили круглые скобки. Когда вы пишете

null tl(L) 

то, что имеет такое же значение, как

null(tl)(L) 

Однако вы хотите

null(tl(L)) 
Смежные вопросы