乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 81|回复: 8

[编程交流] 使用Lisp的数组,您可以

[复制链接]

4

主题

19

帖子

15

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 08:13:32 | 显示全部楼层 |阅读模式
我想知道是否有人能帮我开发一个程序,该程序将使用无限列表,我可以调用这些变量。例如如果我循环一个问题,比如“有梁吗?”以及“指定梁的深度?”-在这个过程中,我可以问这些问题,获取输入,运行子例程,然后当所有的事情都说了和做了,我可以回到第一个第二个。。。第n个输入,这样我以后可以在程序中做更多的事情。希望这不会太令人困惑。
 
谢谢
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-6 08:24:44 | 显示全部楼层
示例代码
 
  1. (defun c:sample (/ doyourthing a b c)
  2. (defun doyourthing (ls / pt)
  3.       (princ (strcat "\nCurrent Beam size " "\t\t" (car ls)))
  4.       (setq pt (getpoint "\nTesting purposes: Pick Point"))
  5.       (command "_rectangle" "_non" pt "_non" (strcat "@" (itoa (cadr ls))
  6.                                              "," (itoa (caddr ls))))
  7.      )      
  8. (setq marker (if (null marker) 0 marker))
  9.      (while
  10. (progn
  11.            (initget  "Y L D")
  12.            (setq a (getkword (if lst
  13.                                  "\nCreate New List/"L" for Existing list [Yes/List/Done]?: "
  14.                                  "\nCreate List  [Yes/Done]: ")))
  15.            (if (eq a "D") nil T)
  16.            )
  17.            (cond ((eq a "L")
  18.                    (foreach itm (reverse lst)(print itm)(princ))
  19.                    (setq b (getint "\nEnter List number: "))
  20.                    (setq c (nth (1- b) (reverse lst)))
  21.                    (doyourthing c)
  22.                   )
  23.                  ((eq a "Y")
  24.                    (prompt "\nEnter Data:")
  25.                    (setq b (getint "\nSpecify Depth of  Beam: "))
  26.                        (setq c (getint "\nSpecify Heigth of  Beam: "))
  27.                    (if (not (setq d (assoc (setq nm (strcat (itoa b) "X" (itoa c))) lst)))
  28.                         (setq lst (cons (list nm b c (setq marker (1+ marker))) lst)
  29.                                      c (car lst))
  30.                                (progn
  31.                                (princ "\Data Already Exist, using previous Data")
  32.                                (setq c d))
  33.                                 )
  34.                   (doyourthing c)
  35.                   )
  36. )
  37.        );while (princ)
  38.      )

 
HTH公司
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 08:34:11 | 显示全部楼层
另一种方法是读写一个包含每个会话所有信息的txt文件,甚至是从上一个会话吃午饭时重新打开并想继续。
 
只是一个问题,你想生产什么?是钢连接等吗
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-6 08:41:20 | 显示全部楼层
 
这是一个绝妙的想法,Bigal,这样用户就可以在另一个会话中使用列表。
回复

使用道具 举报

4

主题

19

帖子

15

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 08:43:41 | 显示全部楼层
这是我公司的支架自动程序。这个想法是让用户输入gerneal信息,然后等待完成。我很欣赏你所做的工作,我也许可以利用你在这里的一个,但这并不完全是我所希望的。所以我的问题是,我希望能够回忆起从回答的问题中提取的各种用户输入。我和我的一个使用html和其他软件的编程伙伴聊过,他说他会使用“数组”,我不知道这到底是如何翻译成lisp的。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 08:52:29 | 显示全部楼层
对于LISP,从其他语言翻译通常意味着
 
数组=列表
 
不过,Visual LISP确实提供了一种安全数组数据类型。
回复

使用道具 举报

4

主题

19

帖子

15

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 09:05:24 | 显示全部楼层
对不起,如果这是张贴了不止一次,我认为这是一个问题结束。。。我听说过安全阵列,你能举几个例子吗?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:09:38 | 显示全部楼层
 
我可以,但我不认为这是必要的-你最好使用一个列表来完成这项任务。LISP是专门为列表处理而构建的,因此配备了多种列表操作功能。SafeArrays是Visual LISP的一部分,仅用于与ActiveX属性和方法兼容;虽然如果您特别需要一些示例来了解安全阵列,但Visual LISP IDE(VLIDE)帮助文档包含了有关该主题的大量信息。
回复

使用道具 举报

4

主题

19

帖子

15

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 09:18:53 | 显示全部楼层
谢谢李,我来查一下。我想学习ActiveX的编程方法,我认为它可以帮助做事情更快。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-9 09:09 , Processed in 0.580710 second(s), 70 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表