你好,游客 登录 注册 搜索
背景:
阅读新闻

newlips全局symbol - sheismylife的专栏

[日期:2013-04-02] 来源:  作者: [字体: ]

定义一个symbol在某个lisp文件中,

;; config.lsp

(set 'java-home "C:\\Program Files\\Java\\jdk1.6.0_41")
(set 'glassfish-home "C:\\portal\\glassfish")
(set 'cloud-engine-home "C:\\cloud_engine")

然后再在另一个lisp文件中加载这个lisp文件:

#!/usr/bin/newlisp

;; initialze environment
(println "check configurable variables in config.lsp file ...")
(load "./config.lsp")

(unless (file? java-home)
	(begin
	  (println "java-home: " java-home " doesn't exist")
	  (exit)))

(unless (file? glassfish-home)
	(begin
	  (println "glassfish-home: " glassfish-home " doesn't exist")
	  (exit)))

(if (empty? cloud-engine-home)
    (begin
      (println "cloud-engine-home: " cloud-engine-home " is empty")
      (exit)))

的确可以使用。


但是如果第二个lisp文件又加载了另一个lisp模块文件,第三个lisp模块就无法得到java-home等变量的值。

如果想得到,就需要用global函数。

所以config.lsp文件内容修改一下:

;; config.lsp

(set 'java-home "C:\\Program Files\\Java\\jdk1.6.0_41")
(set 'glassfish-home "C:\\portal\\glassfish")
(set 'cloud-engine-home "C:\\cloud_engine")

(global 'java-home)
(global 'glassfish-home)
(global 'cloud-engine-home)

可以参考文档:

http://www.newlisp.org/newlisp_manual.html#contexts






收藏 推荐 打印 | 录入:admin | 阅读:
相关新闻