Haskell 递归地使用

Haskell 递归地使用,haskell,recursion,pattern-matching,either,Haskell,Recursion,Pattern Matching,Either,我定义了一个函数,如下所示: myFunction :: String -> Either String MyType 我一直读到最后左侧用于处理错误Right假设返回元组。在myFunction中,我正在调用另一个函数并检查它是否返回Left或Right,如下所示: myFunction :: String -> Either String MyType myFunction "" = Right -- want to return MyType here m

我定义了一个函数,如下所示:

myFunction :: String -> Either String MyType
我一直读到最后<代码>左侧用于处理错误
Right
假设返回元组。在
myFunction
中,我正在调用另一个
函数
并检查它是否返回
Left
Right
,如下所示:

myFunction :: String -> Either String MyType
myFunction "" = Right -- want to return MyType here
myFunction s = 
     case anotherFunction s of
         Left c -> Left c
         Right (v1, v2, t) -> -- want to call myFunction again with t
另一个函数
返回
Right
时,我想再次递归调用
myFunction
,而不会丢失
v1
v2
。我如何通过递归实现这一点

以下是MyType的确切定义:

data MyType = MyString String | MyInt Int | MyMap [(String, MyType)] deriving (Show, Eq)

有点不清楚你在问什么,但我认为你想要的只是
>=
操作符。我想如果你加一个简单的例子会有帮助。例如,一些从
Char
Int
s的2元组的映射来说明您的目标。什么是
MyType
?MyType有一个JLMap[(String,MyType)],我相信这是必需的here@Aivaras你能给出
MyType
的确切定义吗?