lib/core/lisp.c
atom_t
lisp_prog(const lisp_t lisp, const atom_t closure, const atom_t cell,
          const atom_t result)
{
  if (likely(IS_PAIR(cell))) {
    /*
     * Get CAR/CDR.
     */
    atom_t res = lisp_eval(lisp, closure, lisp_car(lisp, cell));
    atom_t cdr = lisp_cdr(lisp, cell);
    /*
     */
    X(lisp, cell, result);
    return lisp_prog(lisp, closure, cdr, res);
  }
  /*
   */
  X(lisp, cell);
  return result;
}
/*
 * PROG. CELL and RESULT are consumed.
 */
PROG. CELL and RESULT are consumed.
PROG . CELL and RESULT are consumed .
atom_t
lisp_prog(const lisp_t lisp, const atom_t closure, const atom_t cell,
          const atom_t result)
{
  if (likely(IS_PAIR(cell))) {
    atom_t res = lisp_eval(lisp, closure, lisp_car(lisp, cell));
    atom_t cdr = lisp_cdr(lisp, cell);
    X(lisp, cell, result);
    return lisp_prog(lisp, closure, cdr, res);
  }
  X(lisp, cell);
  return result;
}
atom_t lisp_prog ( const lisp_t lisp , const atom_t closure , const atom_t cell , const atom_t result ) { if ( likely ( IS_PAIR ( cell ) ) ) { atom_t res = lisp_eval ( lisp , closure , lisp_car ( lisp , cell ) ) ; atom_t cdr = lisp_cdr ( lisp , cell ) ; X ( lisp , cell , result ) ; return lisp_prog ( lisp , closure , cdr , res ) ; } X ( lisp , cell ) ; return result ; }
PROG.
PROG .
/*
     * Get CAR/CDR.
     */ /*
     */ /*
   */