(use apropos) (use test) (define (fooproc0) 'fooproc0) (define (fooproc1 a) 'fooproc1) (define (fooproc2 a b) 'fooproc2) (define (fooprocn a b . r) 'fooprocn) (define fooprocx (lambda (a b c) 'fooprocx)) (define-syntax (foomacro1 f r c) 'foomacro1 ) (define-syntax foomacro2 (syntax-rules () ((_) 'foomacro1 ) ) ) (define foobvar1 'foobvar1) (define foobvar2 'foobvar2) #;(define (foocoreinline flag) (##core#inline "C_set_gc_report" flag)) #;(define fooprimitive (##core#primitive "C_get_memory_info")) (define ##foo#bar1 '##foo#bar1) (define ##foo#bar2 (lambda () '##foo#bar2)) (define ##bar#foo1 '##bar#foo1) (define ##bar#foo1 (lambda () '##bar#foo1)) (test '(foobvar2 foobvar1 fooprocx fooprocn fooproc2 fooproc1 fooproc0 ##bar#foo1 foomacro1 foomacro2) (apropos-list 'foo #:macros? #t #:qualified? #t)) (test '(foobvar2 foobvar1 fooprocx fooprocn fooproc2 fooproc1 fooproc0 foomacro1 foomacro2) (apropos-list 'foo #:macros? #t)) (test '(foobvar2 foobvar1 fooprocx fooprocn fooproc2 fooproc1 fooproc0) (apropos-list 'foo)) (test '((foobvar2 . variable) (foobvar1 . variable)) (apropos-information-list 'foob #:macros? #t #:qualified? #t)) (test '((fooprocx procedure a b c) (fooprocn procedure a b . r) (fooproc2 procedure a b) (fooproc1 procedure a) (fooproc0 procedure)) (apropos-information-list 'fooproc #:macros? #t #:qualified? #t)) (use environments) (define tstenv1 (make-environment #t)) (environment-extend! tstenv1 'fooprocx (lambda (a b c) 'fooprocx)) (environment-extend! tstenv1 'foobvar1 'foobvar1) (environment-extend! tstenv1 'foobvar2 'foobvar2) (environment-extend! tstenv1 '##bar#foo1 '##bar#foo1) (environment-extend! tstenv1 '##bar#foo1 (lambda () '##bar#foo1)) ;make-environment cannot create a syntax-environment ;apropos always uses the ##sys#macro-environment for macro lookup (test '(fooprocx foobvar2 foobvar1 ##bar#foo1) (apropos-list 'foo tstenv1 #:qualified? #t))