| library book1 book2 checkoutAction |
book1 := Dictionary new at: #title put: 'BookA'; at: #available put: true; yourself.
book2 := Dictionary new at: #title put: 'BookB'; at: #available put: true; yourself.
library := OrderedCollection with: book1 with: book2.
checkoutAction := [:aLibrary :aTitle |
| book |
book := aLibrary detect: [:b | (b at: #title) = aTitle] ifNone: [nil].
(book notNil and: [book at: #available])
ifTrue: [
book at: #available put: false.
Transcript show: 'Success: ', aTitle, ' checked out.'; cr.]
ifFalse: [
Transcript show: 'Failed: ', aTitle, ' not available.'; cr.]
].
checkoutAction value: library value: 'BookA'.
checkoutAction value: library value: 'BookA'.
fCBsaWJyYXJ5IGJvb2sxIGJvb2syIGNoZWNrb3V0QWN0aW9uIHwKCmJvb2sxIDo9IERpY3Rpb25hcnkgbmV3IGF0OiAjdGl0bGUgcHV0OiAnQm9va0EnOyBhdDogI2F2YWlsYWJsZSBwdXQ6IHRydWU7IHlvdXJzZWxmLgpib29rMiA6PSBEaWN0aW9uYXJ5IG5ldyBhdDogI3RpdGxlIHB1dDogJ0Jvb2tCJzsgYXQ6ICNhdmFpbGFibGUgcHV0OiB0cnVlOyB5b3Vyc2VsZi4KCmxpYnJhcnkgOj0gT3JkZXJlZENvbGxlY3Rpb24gd2l0aDogYm9vazEgd2l0aDogYm9vazIuCgpjaGVja291dEFjdGlvbiA6PSBbOmFMaWJyYXJ5IDphVGl0bGUgfAogICAgfCBib29rIHwKICAgIGJvb2sgOj0gYUxpYnJhcnkgZGV0ZWN0OiBbOmIgfCAoYiBhdDogI3RpdGxlKSA9IGFUaXRsZV0gaWZOb25lOiBbbmlsXS4KICAgIChib29rIG5vdE5pbCBhbmQ6IFtib29rIGF0OiAjYXZhaWxhYmxlXSkKICAgICAgICBpZlRydWU6IFsKICAgICAgICAgICAgYm9vayBhdDogI2F2YWlsYWJsZSBwdXQ6IGZhbHNlLgogICAgICAgICAgICBUcmFuc2NyaXB0IHNob3c6ICdTdWNjZXNzOiAnLCBhVGl0bGUsICcgY2hlY2tlZCBvdXQuJzsgY3IuXQogICAgICAgIGlmRmFsc2U6IFsKICAgICAgICAgICAgVHJhbnNjcmlwdCBzaG93OiAnRmFpbGVkOiAnLCBhVGl0bGUsICcgbm90IGF2YWlsYWJsZS4nOyBjci5dCl0uCgpjaGVja291dEFjdGlvbiB2YWx1ZTogbGlicmFyeSB2YWx1ZTogJ0Jvb2tBJy4KY2hlY2tvdXRBY3Rpb24gdmFsdWU6IGxpYnJhcnkgdmFsdWU6ICdCb29rQScu