home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Columbia Kermit
/
kermit.zip
/
archives
/
ckscripts.tar.gz
/
ckscripts.tar
/
account
next >
Wrap
Lisp/Scheme
|
2001-03-19
|
827b
|
49 lines
class account
def account::new: {
show args
(setq \%c_\%s.balance 0)
return \%s
}
def account::new:deposit: {
show args
(setq \%c_\%s.balance \%2)
return \%s
}
def account>>deposit: {
if not def \m(\%c_\%s.balance) {
(setq \%c_\%s.balance 0)
}
(++ \%c_\%s.balance \%2)
return \%s
}
def account>>balance {
if not def \m(\%c_\%s.balance) {
(setq \%c_\%s.balance 0)
}
return \m(\%c_\%s.balance)
}
def account>>withdraw: {
if > \%2 \m(\%c_\%s.balance) {
echo ... not enough balance!
} else {
(setq \%c_\%s.balance (- \%c_\%s.balance \%2))
}
return \%s
}
class saving_account inherit: account
saving_account new: sa_1
(sa_1 'balance)
sa_1 deposit: 250
(sa_1 'balance)
(sa_1 'withdraw: 35)
(sa_1 'balance)
( (sa_1 'withdraw: 15) 'balance )
( (sa_1 'deposit: 78) 'balance )