terms are the glue of logic programming


  
  term    : con | fun | expr;
  
  con: '!' | ATOM | STRING ;
  
  fun: ATOM alist               { $$ = mkterm(strof($1),$2); }
     | ATOM '(' ')'             { $$ = $1; }
     ;
  
  literal: term  { $$ = mkterm("#literal:",$1); /* for layout! */ } ;
  
  literals : literal                  
           | literals ',' literal  { $$ = mkterm("#,:",$1,$3); }
           ;
  
  

slide: terms are the glue of logic programming