]> gitweb.factorcode.org Git - factor.git/blob - basis/models/arrow/arrow.factor
2ed0e9fea0fc68d1bf2cf0cd09235fc79f7bac27
[factor.git] / basis / models / arrow / arrow.factor
1 ! Copyright (C) 2008, 2009 Slava Pestov.\r
2 ! See http://factorcode.org/license.txt for BSD license.\r
3 USING: accessors kernel models sequences ;\r
4 IN: models.arrow\r
5 \r
6 TUPLE: arrow < model quot ;\r
7 \r
8 : <arrow> ( model quot -- arrow )\r
9     f arrow new-model\r
10         swap >>quot\r
11     [ add-dependency ] keep ;\r
12 \r
13 M: arrow model-changed\r
14     [ [ value>> ] [ quot>> ] bi* call( old -- new ) ]\r
15     [ set-model ] bi ;\r
16 \r
17 M: arrow model-activated\r
18     [ dependencies>> ] keep [ model-changed ] curry each ;\r