Recently Written · git

Forthe

Forth-like DSL.

git clone https://github.com/equwal/Forthe

Log | Files | Refs


commit 4660cfbea38ef909abd2074af84b32bda8a9a0d8
Spenser Truex <spensertruexonline@gmail.com>
2018-12-16 11:23:29 -0800

labels->flet for lexical binding.

 eforth.el | 52 ++++++++++++++++++++++++++--------------------------
 1 file changed, 26 insertions(+), 26 deletions(-)
diff --git a/eforth.el b/eforth.el
index 06a2ae7..67a55b7 100644
--- a/eforth.el
+++ b/eforth.el
@@ -5,39 +5,39 @@
 (defun inner-eforth (lang list)
   "Forth without a return stack."
   (let ((s))
-    (labels ((fn (fn) (if (functionp fn)
-			  fn
-			  (symbol-function fn))))
+    (cl-flet ((fn (fn) (if (functionp fn)
+                           fn
+                         (symbol-function fn))))
       (dolist (i list)
-	(if (assoc i lang)
-	    (let ((fn (cdr (assoc i lang))))
-	      (if s
-		  (progn (apply (fn fn) s) (setf s nil))
-		(funcall (fn fn))))
-	  (push i s))))))
+        (if (assoc i lang)
+            (let ((fn (cdr (assoc i lang))))
+              (if s
+                  (progn (apply (fn fn) s) (setf s nil))
+                (funcall (fn fn))))
+          (push i s))))))
 (defmacro eforth (lang list)
   `(inner-eforth ,lang ',list))
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; (defvar *my-env* '((ff . find-file)))        ;;
-;; (eforth *my-env* ("~/bogus/" ff))	        ;;
-;; (eforth '((d . split-window-below))	        ;;
-;; 	(d))				        ;;
+;; (eforth *my-env* ("~/bogus/" ff))            ;;
+;; (eforth '((d . split-window-below))          ;;
+;;      (d))                                    ;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 (defun 8pan ()
   (interactive)
   (eforth '((n . (lambda () (switch-to-buffer nil)))
-	   (d . split-window-below)
-	   (r . split-window-right)
-	   (wr . windmove-right)
-	   (wl . windmove-left)
-	   (wd . windmove-down)
-	   (wu . windmove-up)
-	   (del . delete-other-windows)
-	   (cf . make-frame-command)
-	   (nf . other-frame))
-	  ;; (cf nf del r r wr wr r d wr d wl wl d wl d wr n wr n wr n wl wl wl wd n
-	  ;;     wr n wr n wr n wl wl wl wu nf)
-	  (cf del r r wr wr r d wr d wl wl d wl d
-	       n wr n wr n wr n wd n wl n wl n wl n wu)
-	  ))
+           (d . split-window-below)
+           (r . split-window-right)
+           (wr . windmove-right)
+           (wl . windmove-left)
+           (wd . windmove-down)
+           (wu . windmove-up)
+           (del . delete-other-windows)
+           (cf . make-frame-command)
+           (nf . other-frame))
+          ;; (cf nf del r r wr wr r d wr d wl wl d wl d wr n wr n wr n wl wl wl wd n
+          ;;     wr n wr n wr n wl wl wl wu nf)
+          (cf del r r wr wr r d wr d wl wl d wl d
+               n wr n wr n wr n wd n wl n wl n wl n wu)
+          ))
 (provide 'eforth)