From 36eeb6769c9ae4bf7bd73eaac45cc8e483c87c2a Mon Sep 17 00:00:00 2001 From: ~keith Date: Mon, 15 Nov 2021 17:26:08 +0000 Subject: [PATCH] Show step-by-step breakdown of Objective-Lisp chains --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index d41ac42..75a3560 100644 --- a/README.md +++ b/README.md @@ -55,11 +55,17 @@ Under the hood, this just passes `object` as the first argument to `method`, so you can do stuff like this (I won't kinkshame you, but your coworkers might): ```common-lisp [object slot-name (.setf value)] +;; => [(slot-value object 'slot-name) (.setf value)] +;; => (setf (slot-value object 'slot-name) value) ``` And, of course, you can chain multiple slot accesses and method calls together: ``` common-lisp [object child (.method-of-child) (.method-of-return-value) slot-of-return-value] +;; => [(slot-value object 'child) (.method-of-child) ...] +;; => [(method-of-child (slot-value object 'child)) (.method-of-return-value) ...] +;; => [(method-of-return-value (method-of-child ...)) slot-of-return-value] +;; => (slot-value (method-of-return-value ...) 'slot-of-return-value) ``` ## License