Table of Contents

do

Some expressions have implicit do blocks in them, making it unnecessary to use a do block

when

;;; Don't
(when test
  (do expr1
      expr2))
 
;;; Do
(when test
  expr1
  expr2)

let

;;; Don't
(let bindings
  (do expr1
      expr2))
 
;;; Do
(let bindings
  expr1
  expr2)

Function body

;;; Don't
(fn []
  (do expr1
      expr2))
 
;;; Do
(fn []
  expr1
  expr2)