⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 evalenv.lsp

📁 一个音频的可执行程序。可以导入MP3/WAV格式的文件后
💻 LSP
字号:
;;;; The EVAL function in the original XLISP evaluated in the current lexical;; context. This was changed to evaluate in the NIL (global) context to;; match Common Lisp. But this created a problem: how do you EVAL an;; expression in the current lexical context?;;;; The answer is you can use the evalhook facility. The evalhook function;; will evaluate an expression using an environment given to it as an;; argument. But then the problem is "how do you get the current;; environment?" Well the getenv macro, below obtains the environent by;; using an *evalhook* form.;;;; The following two macros do the job. Insteading of executing (eval <expr>);; just execute (eval-env <expr>). If you want, you can dispense with the;; macros and execute:;;;;(evalhook <expr> nil nil (let ((*evalhook* (lambda (x env) env)));;                              (eval nil)));;;; Tom Almy  10/91;;(defmacro getenv ()  '(progv '(*evalhook*)           (list #'(lambda (exp env) env))     (eval nil))); this didn't work, may be for a later (Almy) version of xlisp?;(defmacro getenv ();          '(let ((*evalhook* (lambda (x env) env)));                (eval nil)))    ; hook function evaluates by returning                                 ; environment(defmacro eval-env (arg)        ; evaluate in current environment          `(evalhook ,arg nil nil (getenv)))

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -