]> gitweb.factorcode.org Git - factor.git/blob - extra/central/central.factor
extra/central implements the "central" pattern
[factor.git] / extra / central / central.factor
1 USING: kernel lexer namespaces parser sequences words ;
2
3 IN: central
4
5 : define-central-getter ( word -- )
6     dup [ get ] curry (( -- obj )) define-declared ;
7
8 : define-central-setter ( word with-word -- )
9     [ with-variable ] with (( object quot -- )) define-declared ;
10
11 : define-central ( word-name -- )
12     [ create-in dup define-central-getter ] keep
13     "with-" prepend create-in [ define-central-setter ] keep
14     make-inline ;
15
16 SYNTAX: CENTRAL: ( -- ) scan define-central ;