Привет, у меня проблемы с тайм-аутом, и я пытаюсь разбить свой файл на разные модули в надежде, что проверенный модуль не нужно будет повторно проверять в коде VS при работе с модулем, который его импортирует. Если кто-нибудь знает, является ли это разумным способом избежать проблем с тайм-аутом, я хотел бы услышать.
Но более основная проблема, которую я обнаружил, заключается в том, что после импорта АТД я могу использовать операторы in in if
, но не операторы match
. См. код ниже для примера. Любые идеи о том, что я делаю неправильно?
module inner {
datatype Twee = Node(value : int, left : Twee, right : Twee) | Leaf
function rot(t:Twee) :Twee
{
match t
case Leaf => t
case Node(v,l,r) => Node(v,r,l)
}
}
module outer {
import TL = inner
function workingIf(t:TL.Twee) :TL.Twee
{ if (t == TL.Leaf) then TL.Leaf else t }
function failingMatch(t:TL.Twee) :TL.Twee
{
match t
case TL.Leaf => t // error "darrow expected"
case TL.Node(v,l,r) => TL.Node(v,r,l)
}
}