2016-12-24 47 views
4

我有一个Either String (Either String Int)类型的对象。我想将其折叠为类型为Either String Int的对象。如何折叠PureScript中的任一个?

在PureScript中是否提供了此功能?

+0

我不知道purescript,但这是'join'(用'要么String'的单子)在Haskell。也许这有帮助? – luqui

+0

@luqui是的,它跟Haskell差不多,差不多和Haskell一样 – sdgfsdh

+3

@sdgfsdh只是一个小窍门,purescript输入的洞可以搜索符合它们类型的定义: 检出http://try.purescript.org/?gist = 7552f9f7edeae7f58e5114c9a479fb53&backend = core作为示例 –

回答

4

这是一样的哈斯克尔:

import Prelude 
import Data.Either 

let a = Left "a" :: Either String (Either String Int) 
let b = Right (Left "b") :: Either String (Either String Int) 
let c = Right (Right 123) :: Either String (Either String Int) 

join a -- Left "a" 
join b -- Left "b" 
join c -- Right 123 
+0

考虑接受此答案,以便问题显示为已回答。 – rightfold