2017-02-12 1 views
0

Работа в ML У меня есть рекурсивная функция, написанная в if, then, else style. Функция имеет два базовых блока: Null List и Null tail списка. Первый базовый корпус легко преобразовать в стиль сопоставления шаблонов.Как бы вы конвертировали эти If, Then Else рекурсии в соответствие шаблону?

if(Null L) then false 

становится

fun oddNum(nil) = false 

Я не знаю, как написать другой базовый вариант в шаблон стиля соответствия.

else if (Null tl(L)) then true 

Я попытался это

| oddNum(nil(tl(L)) = true 

Моя проблема заключается в том, что я не знаю, как объявить список L как X :: хз, прежде чем я пишу свой второй базовый случай «| oddNum (ноль (tl (L)) = истинно "

ответ

4
fun oddNum nil = false 
    | oddNum (_::nil) = true 
    | oddNum (_::_::xs) = oddNum xs 
Смежные вопросы