I was wondering if it would be possible to add a built-in version of cond that uses match/unify to match and then create a local scope for the matched condition's body, such as:
Code: Select all
(define (foo)
  (match-cond (args)
    ((A B C) (do something where A B C are declared as local))
    ((A B) (do something when (args) only has A and B))
    (true (catch-all clause)))I've worked on this as a macro, but it ended up being so slow that it wasn't worth using. However, this would give us modern functional pattern matching syntax, and allow some really nice, concise coding.