Мне нужно написать свои собственные типы данных - либо, либо либоTree, у которых есть свои типы. С их помощью мне нужно создать функцию, которая принимает в качестве параметров int иitherTree, которая выполняет поиск по дереву и возвращает true, если значение существует в дереве. тип должен быть: либоTree -> int -> bool
Пока у меня есть:
datatype either = ImAString of string | ImAnInt of int
datatype eitherTree = eLEAF of either | eINTERIOR of (either*eitherTree*eitherTree)
fun eitherSearch v1 (eLEAF((v2)) = if v1 = v2 then true
else false
| eitherSearch v1 (eINTERIOR(e1, et1, et2)) = if v1 = e1 then true
else if (eitherSearch v1 et1) = true
then true
else if (eitherSearch v1 et1) = true
then true else false
Кажется, что «трюк» заключается в приведении ImAnInt / int друг к другу, чтобы я мог их сравнить. У кого-нибудь есть идеи? Спасибо.