lambda-calculus.js
function fromBLC(source){
    var index = 0;
    return (function go(){
      if (source[index] === "0")
        return source[index+1] === "0"
          ? (index+=2, Lam(go()))
          : (index+=2, App(go(), go()));
      for (var i=0; source[index]!=="0"; ++i)
        ++index;
      return (++index, Var(i-1));
    })();
  }
function fromBLC(source){
    var index = 0;
    return (function go(){
      if (source[index] === "0")
        return source[index+1] === "0"
          ? (index+=2, Lam(go()))
          : (index+=2, App(go(), go()));
      for (var i=0; source[index]!=="0"; ++i)
        ++index;
      return (++index, Var(i-1));
    })();
  }
function fromBLC ( source ) { var index = 0 ; return ( function go ( ) { if ( source [ index ] === "0" ) return source [ index + 1 ] === "0" ? ( index += 2 , Lam ( go ( ) ) ) : ( index += 2 , App ( go ( ) , go ( ) ) ) ; for ( var i = 0 ; source [ index ] !== "0" ; ++ i ) ++ index ; return ( ++ index , Var ( i - 1 ) ) ; } ) ( ) ; }
String -> Term Converts a binary lambda calculus string to a term.
String - > Term Converts a binary lambda calculus string to a term .