6f99041a367f

Update
[view raw] [browse files]
author Steve Losh <steve@stevelosh.com>
date Sat, 02 Jul 2016 19:08:01 +0000
parents 003328260d65
children c39f91172da2
branches/tags (none)
files README.markdown

Changes

--- a/README.markdown	Sat Jul 02 11:44:32 2016 +0000
+++ b/README.markdown	Sat Jul 02 19:08:01 2016 +0000
@@ -328,3 +328,27 @@
   I admit I did twitch a bit when I saw the infix `(('speaker 'health) > 0.5)`
   notation in their Scheme-like dialog scripting language -- I guess even
   Naughty Dog isn't perfect, hah.
+* Shaved a yak related to packages in [cl-nrepl][] that I've been meaning to get
+  to for a long time.  Really I need to rewrite that whole project now that
+  I'm not a complete noob in Common Lisp.
+* Did episode 32 in [Coding Math][].  I decided to use Common Lisp's multiple
+  return values for everything this time instead of taking/returning vectors
+  everywhere, just to see how it felt.
+
+  Implementing the core functions felt really nice with multiple values, but
+  when it came to the drawing code things got a bit more awkward.  Needing to
+  use `multiple-value-(call/bind)` to get things done is kind of a pain in CL
+  because of how verbose things can get.  I could make some read macros to ease
+  the pain, but it's probably not worth it.
+
+  I'm trying to come up with a good rule of thumb for when to use multiple
+  values and when not to.  Multiple value return obviously only gives you one
+  level of "hierarchy" to work with, so e.g. instead of `(values x1 y2 x2 y2)`
+  it's probably better to do `(values point1 point2)`.  Also if the items are
+  the same "importance" it's probably also better to just return a structure of
+  some kind -- the fact that CL treats the value first differently makes it seem
+  like it's special when really `point1` isn't any more important than `point2`.
+
+  I think the general rule I'll follow (for now) is to use multiple value
+  returns very sparingly, and only when one of the values is different than the
+  rest and is obviously the "most important" one.