• person rss_feed

    Michał "phoe" Herda’s feed

    Blog

    • chevron_right

      Brackets in Lisp

      Michał "phoe" Herda · Sunday, 28 April, 2019 - 08:41 edit

    #CommonLisp #Lisp

    (set-macro-character #\[
      (lambda (stream char)
        (declare (ignore char))
        (read-delimited-list #\] stream t)))
    
    (set-macro-character #\]
      (lambda (stream char)
        (declare (ignore stream char))
        (error "unmatched bracket on input")))
    
    CL-USER> [defun frobnicate [foo bar]
               [list [+ foo bar] [- foo bar]
                     [* foo bar] [/ foo bar]]]
    FROBNICATE
    CL-USER> [frobnicate 42 20]
    (62 22 840 21/10)