明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4033|回复: 5

[原创]★ 将jscript移植到lisp

[复制链接]
发表于 2007-8-19 16:48:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2007-8-19 17:40:07 编辑

将jscript移植到lisp
  姊妹版:将vbscript移植到lisp:  http://www.mjtd.com/BBS/dispbbs.asp?boardid=3&replyid=68044&id=62106&page=1&skin=0&Star=1.

说实在的,js的数组返回值困扰了我一阵子,和vbs处理不同.
正好今天是中国的情人节,祝有情人终成眷属。
下载地址:

http://dreamskylxx.ys168.com/
  1. ;| (xxjs str)=移植js程序的函数v2----ok!-----------by 梁雄啸.2007.8
  2. 函数: xxjs
  3. 格式: (xxjs str)
  4. 参数: str = js语句.
  5.       说明: 1.有多行语句时,如写在一行,用 "\n" 分隔.
  6.             2.可将多行js程序拷贝移植,注意: " 应用 "替代, \ 号应用 \\ 替代.
  7.             3.如果js内容过长,可分成几段来移植,但是被调用的子函数必须写在前面.即把调用子函数的部分放到最后.有回车的地方要保留,如:
  8.             (setq str "
  9.               ****移植的语句****
  10.               "
  11.               )
  12.       ret = js语句中返回值变量.支持表,字符,符号格式.
  13.             如: '(a "b") , "b" , 'a
  14. 返回: 执行js,返回js返回值.
  15. 版本: v2完善数组返回值.完善对wscript. 的判断 . ret支持表,字符,符号格式.
  16.        v1 完成js移植主要部分.
实例:

1. 生成一个文本文件,并写入内容.
  1. (setq str "var fso = new ActiveXObject("Scripting.FileSystemObject");
  2. var a = fso.CreateTextFile("c:\\\\testfile.txt", true);
  3. a.WriteLine("This is a test.");
  4. a.Close();
  5. ")
  6.   (xxjs str "a")
2. 构造一个函数,并返回调用值.
  1. (setq str "function myfunction(arg1, arg2){
  2.    var r;
  3.    r = arg1 * arg2;
  4.    return(r);
  5. }")
  6. (xxjs str "myfunction(3,4)") ;;返回: 12
3. 生成数组,返回数组项值
  1. (setq str
  2. "var myarray = new Array(); /*赋值*/
  3. for (i = 0; i < 10; i++) { /赋值/
  4. myarray[i] = i;
  5. }")
  6. (xxjs str "myarray[9]") ;;返回: 9
4.构造数组
  1. (setq str
  2. "var myarray = new Array();
  3. var s;
  4. for (i = 0; i < 10; i++) {
  5. myarray[i] = i;
  6. };
  7. myarray [10] = "测试"
  8. ")
  9. (xxjs str "myarray[2]") ;-> 2
  10. (xxjs str "myarray[10]") ;->"测试"
  11. (xxjs str "myarray.length") ;->11
  12. (xxjs str "myarray.constructor == Array") ;-> :vlax-true
  13. (xxjs str "myarray") ;->("0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "测试")  ;; 返回数组对应的表!
  14. ;;;
  15. (xxjs "var a = "测试"" "a") ;-> "测试"
  16. (xxjs "var a = "测试"" "a.constructor== String") ;-> :vlax-true
  17. (xxjs "var a = 3" "a.valueOf()") ;-> 3
5.
  1. (setq str "
  2. function test(){
  3.     for(var i=0,a=test.arguments,b=[];i<a.length;i++){
  4.         var t=a[i][0];
  5.         if(!b[t]){
  6.             b[t]=new Array();
  7.             b[t][0]=t;
  8.             }
  9.         for(var j=1;j<a[i].length;j++)
  10.             b[t].push(a[i][j]);
  11.         }
  12.     return b;
  13.     }
  14. var a0=["0","1"];
  15. var a1=["0","2"];
  16. var a2=["0","3"];
  17. var a3=["0","4"];
  18. var a4=["1","a"];
  19. var a5=["1","b"];
  20. var result=new Array();
  21. result=test(a0,a1,a2,a3,a4,a5);")
  22. (xxjs str "result");->(("0" "1" "2" "3" "4") ("1" "a" "b"))
6.
  1. (setq str "
  2. var arr = new Array();
  3. for (i = 0 ; i < 4; i++) {
  4.   for (j = 0 ; j < 3; j++) {
  5.    arr[i] = new Array (i , j + i);
  6.    }
  7. }
  8. " ret "arr")
  9. (xxjs str "arr");;-> ((0 2) (1 3) (2 4) (3 5))
  10. (xxjs str "arr[0][1]");-> 2
7.
  1. (setq str "
  2. function myfunction(arg1, arg2){
  3.    var r;
  4.    r = arg1 * arg2;
  5.    return(r);
  6. }")
  7. (xxjs str "myfunction(2,3)") ;-> 6
8.
  1. (setq str " var tab = new Array ;
  2. tab = [[1,2,3],[4,5,6],[7,8,9,10]];" ret "tab")
  3. (xxjs str "tab") ;->((1 2 3) (4 5 6) (7 8 9 10))
  4. (xxjs str "tab[1][0]") ;-> 4
  5. (xxjs str "tab[1]") ;->(4 5 6)
9.
  1. (setq str " var tab = new Array; a = [3,"b"]; tab=[1,2,a];")
  2. (xxjs str "tab") ;->(1 2 (3 "b"))
  3. (xxjs str "tab[2][0]") ;-> 3
10
  1. (setq str "
  2. x = [[1,2,3],[4,5,6],[7,8,9]];
  3. var a=new Array(x)
  4. for(i=0;i<x;i++)
  5. {
  6.     a[i]=new Array(y)
  7. }" ret "a")
  8. (xxjs str "a");-> (((1 2 3) (4 5 6) (7 8 9)))

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
"觉得好,就打赏"
还没有人打赏,支持一下

本帖被以下淘专辑推荐:

  • · excel|主题: 80, 订阅: 3
发表于 2007-8-20 08:49:00 | 显示全部楼层
看不懂...不介意让我占个位子学习吧..呵
发表于 2008-2-2 13:42:00 | 显示全部楼层
版主真是利害
但要怎样运用 jscrip
希望可以多点介绍,
关于图面或系统方面资讯.
发表于 2008-2-10 00:13:00 | 显示全部楼层

请问无痕版主是做哪行的?

发表于 2008-3-19 21:12:00 | 显示全部楼层
请问无痕版主JSP的阵列变数怎样回传成LISP的串列呢
发表于 2008-5-19 21:12:00 | 显示全部楼层
不明白!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-2-21 03:29 , Processed in 0.206604 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表