Browse Source

Added in Evaluating Bind

Samuel W. Flint 7 years ago
parent
commit
5555887082
1 changed files with 20 additions and 2 deletions
  1. 20 2
      larcs.org

+ 20 - 2
larcs.org

@@ -74,7 +74,7 @@ While the [[id:f3e3cdb9-a661-4598-8be1-e15f587f35bb][Introduction]] describes th
 #+TOC: headlines 3
 #+TOC: listings
 
-* WORKING Common Functionality [3/5]
+* WORKING Common Functionality [3/6]
 :PROPERTIES:
 :CREATED:  <2016-06-11 Sat 22:23>
 :ID:       f153a0fe-ec04-47b1-bdc5-290cc62bc985
@@ -214,6 +214,21 @@ This is a mapping between the names of constants and the way that they are corre
     (if (listp object) object (list object)))
 #+END_SRC
 
+** TODO Evaluating Bind
+:PROPERTIES:
+:CREATED:  <2016-12-14 Wed 15:13>
+:ID:       390707cd-6a58-404c-b2e5-286f09be977f
+:END:
+
+#+Caption: Evaluating Bind
+#+Name: evaluating-bind
+#+BEGIN_SRC lisp 
+  (defun evaluating-bind (expression &rest pairs)
+    (let ((vars (mapcar #'first pairs))
+          (values (mapcar #'second pairs)))
+      (apply (eval `(lambda ,vars ,expression)) values)))
+#+END_SRC
+
 ** DONE Assembly
 CLOSED: [2016-07-30 Sat 15:43]
 :PROPERTIES:
@@ -235,6 +250,8 @@ This is where the common functions and constants are assembled into their own pa
   <<aget>>
 
   <<ensure-list>>
+
+  <<evaluating-bind>>
 #+END_SRC
 
 * DONE Expression Typing [8/8]
@@ -2430,7 +2447,8 @@ This defines the common package, which keeps a few macros and variables that are
              #:*special-symbols-to-sequences*
              #:*constant-names*
              #:aget
-             #:ensure-list)
+             #:ensure-list
+             #:evaluating-bind)
     (:nicknames #:common))
 #+END_SRC