Question: I have a three column table in HTML. The cells in the third column are all of the same class.

I want the third column in each row to move to a new row under the column if the screen width is less than 750px.

So, the table would normally look like this:

```
<table>
 <tr>
  <td></td>
  <td></td>
  <td class="thirdcol"></td>
 </tr>
 <tr>
  <td></td>
  <td></td>
  <td class="thirdcol"></td>
 </tr>
</table>

```

If the screen width is less than 750px, I want the javascript function to make the table look like this:

```
<table>
 <tr>
  <td></td>
  <td></td>
 </tr>
 <tr>
  <td class="thirdcol"></td>
 </tr>
 <tr>
  <td></td>
  <td></td>
 </tr>
 <tr>
  <td class="thirdcol"></td>
 </tr>
</table>

```

Answer: 
The other answers all good, but when in doubt, you can always just test it out on the REPL:

```
user=> (or true (do (println "hello") true))
true
user=> (or false (do (println "hello") true))
hello
true

```
Yes, Clojure does indeed have short circuit evaluation.

One interesting feature in Clojure / other Lisps is that it is also possible to extend the language with new constructs that also provide short-circuit evaluation. This can't be done using functions in most other languages since all the parameters to a function must be evaluated before the function is called.

Here's an example of a macro to implement a short-circuiting NAND function in Clojure:

```
(defmacro nand 
  ([x] 
    `(not ~x))              ; NAND is equivalent to NOT for one argument
  ([x & xs] 
    `(let [nand# (not ~x)]
       (if nand# 
         true               ; short circuit if we can prove the nand is true
         (nand ~@xs)))))    ; continue with the other expressions otherwise

(nand true true)
=> false

(nand false (println "Expression with a side effect!"))
=> true

```