1;;; 2;;; srfi-173 hooks 3;;; 4 5(define-module srfi-173 6 (use gauche.hook) 7 (export make-hook hook? list->hook list->hook! 8 hook-add! hook-delete! hook-reset! 9 hook->list hook-run)) 10(select-module srfi-173) 11 12;; The following procedures are the same as gauche.hook 13;; make-hook hook? hook->list 14 15(define (hook-add! hook proc) (add-hook! hook proc)) 16(define (hook-delete! hook proc) (delete-hook! hook proc)) 17(define (hook-reset! hook) (reset-hook! hook)) 18 19(define (list->hook arity lst) 20 (rlet1 hook (make-hook arity) 21 (dolist [p lst] (add-hook! hook p)))) 22(define (list->hook! hook lst) 23 (reset-hook! hook) 24 (dolist [p lst] (add-hook! hook p))) 25 26(define (hook-run hook . args) (apply run-hook hook args)) 27