title: If-else statement error in Scheme using guile
body: <p>Total newbie to Scheme here.</p>
  <p>I've been stuck on a scheme problem for sometime now. I don't understand how to code this right. I've looked every where on this site and others, and I just can't get this to work.</p>
  <p>the problem: define a function Square that squares its parameters. If the parameter is not a number, print the message &quot;invalid_input&quot;.</p>
  <p>Here is what I have tried:</p>
  <pre><code>(define (square x) (cond
                        ((number? x) (* x x))
                        (else (display &quot;invalid_input\n&quot;))
                     )
  )
  </code></pre>
  <p>I've also tried this:</p>
  <pre><code> (define (square x) (cond
                         ((number? x) (* x x))
                         ((not (number? x)) (display &quot;invalid_input\n&quot;))
                      )
   )
  </code></pre>
  <p>And this:</p>
  <pre><code>(define (square x) (if 
                     (number? x) (* x x) (display &quot;invalid_input\n&quot;)
                     )
  )
  </code></pre>
  <p>None of these have worked when I call square like this (square h).
  I keep getting this error on Linux</p>
  <pre><code>scheme@(guile-user)&gt; (square h)
  ;;; &lt;stdin&gt;:44:0: warning: possibly unbound variable `h'
  &lt;unnamed port&gt;:44:0: In procedure #&lt;procedure 7fcc7d0a0b60 at &lt;current input&gt;:44:0 ()&gt;:
  &lt;unnamed port&gt;:44:0: In procedure module-lookup: Unbound variable: h
  Entering a new prompt.  Type `,bt' for a backtrace or `,q' to continue.
  </code></pre>
  <p>Shouldn't it print &quot;invalid_input&quot; since 'h' is not a number?
  help me out here please. thank you</p>