Nuprl Definition : C_TYPE_ind

C_TYPE_ind(v
Void=>Void
Int=>Int
Struct(fields)=>rec1.Struct[fields; rec1]
Array(length,elems)=>rec2.Array[length; elems; rec2]
Pointer(to)=>rec3.Pointer[to; rec3]) ==
  fix((λC_TYPE_ind,v. let lbl,v1 
                      in if lbl="Void" then Void
                         if lbl="Int" then Int
                         if lbl="Struct" then Struct[v1; λi.let v2,v3 v1[i] in C_TYPE_ind v3]
                         if lbl="Array" then let length,v2 v1 in Array[length; v2; C_TYPE_ind v2]
                         if lbl="Pointer" then Pointer[v1; C_TYPE_ind v1]
                         else ⊥
                         fi )) 
  v



Definitions occuring in Statement :  select: L[n] bottom: atom_eq: if a=b then else fi  apply: a fix: fix(F) lambda: λx.A[x] spread: spread def token: "$token"
FDL editor aliases :  C_TYPE_ind
C\_TYPE\_ind(v
Void=>Void
Int=>Int
Struct(fields)=>rec1.Struct[fields;  rec1]
Array(length,elems)=>rec2.Array[length;  elems;  rec2]
Pointer(to)=>rec3.Pointer[to;  rec3])  ==
    fix((\mlambda{}C\_TYPE$_{ind}$,v.  let  lbl,v1  =  v 
                                          in  if  lbl="Void"  then  Void
                                                if  lbl="Int"  then  Int
                                                if  lbl="Struct"  then  Struct[v1;  \mlambda{}i.let  v2,v3  =  v1[i]  in  C\_TYPE$_\mbackslash{}ff7\000Cbind}$  v3]
                                                if  lbl="Array"  then  let  length,v2  =  v1  in  Array[length;  v2;  C\_TYPE$_\000C{ind}$  v2]
                                                if  lbl="Pointer"  then  Pointer[v1;  C\_TYPE$_{ind}$  v1]
                                                else  \mbot{}
                                                fi  )) 
    v



Date html generated: 2015_07_17-AM-07_42_31
Last ObjectModification: 2014_06_02-PM-05_27_46

Home Index