Nuprl Definition : array-monad
array-monad(AType) ==
  mk_monad(λT.(Arr(AType) ⟶ (T × Arr(AType)));λv,A. <v, A>λm,k,A. let v = fst((m A)) in let A' = snd((m A)) in k v A')
Definitions occuring in Statement : 
Arr: Arr(AType)
, 
mk_monad: mk_monad(M;return;bind)
, 
let: let, 
pi1: fst(t)
, 
pi2: snd(t)
, 
apply: f a
, 
lambda: λx.A[x]
, 
function: x:A ⟶ B[x]
, 
pair: <a, b>
, 
product: x:A × B[x]
Definitions occuring in definition : 
mk_monad: mk_monad(M;return;bind)
, 
function: x:A ⟶ B[x]
, 
product: x:A × B[x]
, 
Arr: Arr(AType)
, 
pair: <a, b>
, 
lambda: λx.A[x]
, 
pi1: fst(t)
, 
let: let, 
pi2: snd(t)
, 
apply: f a
FDL editor aliases : 
array-monad
Latex:
array-monad(AType)  ==
    mk\_monad(\mlambda{}T.(Arr(AType)  {}\mrightarrow{}  (T  \mtimes{}  Arr(AType)));\mlambda{}v,A.  <v,  A>\mlambda{}m,k,A.  let  v  =  fst((m  A))  in
                                                                                                                                let  A'  =  snd((m  A))  in
                                                                                                                                k  v  A')
Date html generated:
2016_05_15-PM-02_17_44
Last ObjectModification:
2015_09_23-AM-07_38_30
Theory : monads
Home
Index