Syntax 在ML中,这个二叉树搜索函数的语法有什么问题?

Syntax 在ML中,这个二叉树搜索函数的语法有什么问题?,syntax,binary-search-tree,ml,Syntax,Binary Search Tree,Ml,我试图在ML中创建一个函数,它在二叉树中搜索一个值并返回true或false。有人能帮我从语法上修正我的函数吗?以下是我所拥有的: datatype either = ImAString of string | ImAnInt of int; datatype eitherTree = LEAF of either | NODE of eitherTree*either*eitherTree; fun eitherSearch(LEAF(ImAnInt x), search_value) = (

我试图在ML中创建一个函数,它在二叉树中搜索一个值并返回true或false。有人能帮我从语法上修正我的函数吗?以下是我所拥有的:

datatype either = ImAString of string | ImAnInt of int;
datatype eitherTree = LEAF of either | NODE of eitherTree*either*eitherTree;
fun eitherSearch(LEAF(ImAnInt x), search_value) = (x=search_value)
|  eitherSearch(LEAF(ImAString x), search_value) = false
|  eitherSearch(NODE(left, ImAString node_value, right), search_value) = false
|  eitherSearch(NODE(left, ImAnInt node_value, right), search_value) =
  if (search_value > node_value)
  then eitherSearch(right, search_value)
  else eitherSearch(left, search_value);

您得到的语法错误是什么?警告匹配并不详尽。在fun eitherSearch(………)=(x=搜索值)| eitherSearch(…)=假| eitherSearch…=如果。。。然后。。。其他的val eitherSearch=fn:eitherTree*int->boolYou没有用于
节点(u,ImAString,u,u)
案例的子句。它现在看起来如何?更好-它解决了穷尽性问题吗?