title: Unable to understand a line of Emacs Lisp
body: <p>The line is </p>
  
  <pre><code>function info() { 
      emacs -eval "(progn (setq Man-notify-method 'bully) (info \"$1\"))" 
  }
  </code></pre>
  
  <p>I know from manuals that</p>
  
  <p><strong>Progn</strong></p>
  
  <blockquote>
    <p>progn is a special form in `C source
    code'.</p>
  </blockquote>
  
  <p><strong>Setq</strong></p>
  
  <blockquote>
    <p>setq is a special form in `C source
    code'. (setq SYM VAL SYM VAL ...)</p>
    
    <p>Set each SYM to the value of its VAL.
    The symbols SYM are variables; they
    are literal (not evaluated). The
    values VAL are expressions; they are
    evaluated. Thus, (setq x (1+ y)) sets
    <code>x' to the value of</code>(1+ y)'. The
    second VAL is not computed until after
    the first SYM is set, and so on; each
    VAL can use the new value of variables
    set earlier in the <code>setq'. The return
    value of the</code>setq' form is the value
    of the last VAL.</p>
  </blockquote>
  
  <p><strong>$1</strong> seems to a reference to the first parameter after the command <code>man</code> which the user gives.</p>
  
  <p><strong>'bully</strong> seems to be a random variable.</p>
  
  <p><strong>Man-notify-method</strong> seems to be an action function which is run when man command is executed.</p>
  
  <p><code>-eval</code> seems to be an evalutian statemant which tells Emacs to run the statement which follows it.</p>
  
  <p>However, I am not completely sure about the function.</p>
  
  <p>I need to understand the function, since I want to bind a <em>bash code of mine</em> to the action function of man. <strong>Man-notify-method</strong> seems to be that action function, at least in Emacs.</p>
  
  <p><strong>How do you understand the line of Emacs Lisp?</strong></p>