Functional programming Purescript应用程序不执行

Functional programming Purescript应用程序不执行,functional-programming,purescript,Functional Programming,Purescript,这意味着: main = do ctx <- getCanvasElementById "stage" >>= getContext2D bs <- initBranches tick 0 ctx bs main=do ctx>=getContext2D bs>=getContext2D) 初始分支 然而,在我的理解中,两者都意味着相同的基本内容。为什么会这样?我可以在这里使用应用程序语法吗 这同样有效 main = do a <- (ti

这意味着:

main = do 
  ctx <- getCanvasElementById "stage" >>= getContext2D
  bs  <- initBranches
  tick 0 ctx bs
main=do
ctx>=getContext2D
bs>=getContext2D)
初始分支
然而,在我的理解中,两者都意味着相同的基本内容。为什么会这样?我可以在这里使用应用程序语法吗


这同样有效

main = do
  a <- (tick 0) <$> (getCanvasElementById "stage" >>= getContext2D) <*> initBranches 
  b <- a
  fprint b
main=do
a>=getContext2D)initBranchs
b
main=join$tick 0(getCanvasElementById“stage”>>=getContext2D)
初始分支
应用程序创建一个嵌套的Eff,join很容易解决这个问题

main = do
  a <- (tick 0) <$> (getCanvasElementById "stage" >>= getContext2D) <*> initBranches 
  b <- a
  fprint b
main = join $ tick 0 <$> (getCanvasElementById "stage" >>= getContext2D) 
                     <*> initBranches