]> gitweb.factorcode.org Git - factor.git/commitdiff
starting bank account stuff
authorAlex Chapman <chapman.alex@gmail.com>
Mon, 10 Mar 2008 23:38:34 +0000 (10:38 +1100)
committerAlex Chapman <chapman.alex@gmail.com>
Mon, 10 Mar 2008 23:38:34 +0000 (10:38 +1100)
extra/bank/bank.factor [new file with mode: 0644]

diff --git a/extra/bank/bank.factor b/extra/bank/bank.factor
new file mode 100644 (file)
index 0000000..c9228be
--- /dev/null
@@ -0,0 +1,33 @@
+USING: accessors calendar kernel money new-slots sequences ;
+IN: bank
+
+MIXIN: policy
+TUPLE: simple-policy interest-rate ;
+INSTANCE: simple-policy policy
+C: <simple-policy> simple-policy
+
+GENERIC: interest-rate ( date account policy -- rate )
+M: simple-policy interest-rate 2nip interest-rate>> ;
+
+: daily-interest-rate ( date account policy -- rate )
+    pick days-in-year >r interest-rate r> / ;
+
+TUPLE: account name balance transactions ;
+
+: <account> ( name -- account )
+    0 V{ } clone account construct-boa ;
+
+TUPLE: transaction date amount description ;
+
+C: <transaction> transaction
+
+: >>transaction ( account transaction -- account )
+    over transactions>> push ;
+
+: open-account ( date opening-balance name -- account )
+    <account> >r "Account Opened" <transaction> >>transaction ;
+
+: open-account-now ( opening-balance name -- account )
+    now -rot open-account ;
+
+