prefixマクロ


prefix-macro

シンプルだけど使いやすいかもしれないマクロです。
同じ手続きを引数だけ変えて複数回呼び出したい時や、
似たような定義が並ぶ時に使うと見やすくなるかもしれないです。

(define gl-enable (foreign-lambda void "glEnable" int))
(prefix gl-enable
  ((@int "GL_BLEND"))
  ((@int "GL_DEPTH_TEST"))
  ((@int "GL_CULL_FACE")))
(define size 16)
(prefix define
  (joy-present      (make-u8vector       size 0))
  (joy-axes-size    (make-s32vector      size 0))
  (joy-axes-data    (make-pointer-vector size #f))
  (joy-buttons-size (make-s32vector      size 0))
  (joy-buttons-data (make-pointer-vector size #f))

いたずらにまとめるのではなく、
意味のある定義群ごとにまとめていくと可読性が上がるかもしれないですね。