手続きの仮引数として正しい形式か検査する


Tags: R6RS, リスト, 手続き, マクロ

手続きの仮引数(formal parameter)と同一の形式の構文は標準マクロを始めとして多く見られる。

(import (rnrs))

(define (formals? xs)
  (define (p? x)
    (or (symbol? x)
        (identifier? x)))
  (or (null? xs)
      (and (not (pair? xs))
           (p? xs))
      (and (p? (car xs))
           (formals? (cdr xs)))))