变量 变量 ...
**** Hidden Message ***** 好吧,我知道这在lisp中是不可能的,我在想通过arx可能是... 是什么驱使人们认为需要返回一个符号而不是一个值?哦,好吧,我不知道,但这并不意味着它不能完成。 你可以返回一个符号,但是如果它是函数的局部变量,那么它将返回nil。
这又是什么驱动的?
我必须计算很多多边形和它的很多顶点以及很多其他实体,所以我通常用类似于:
(setq x (+ 1 x))或(setq x (- 1 x))等来“迭代”这些项目...
这很小,本身也没什么复杂的,但是对我来说,输入很多次是非常烦人的。然后一个构建我自己的版本:
(DEFUN ++ (**)
(SET ** (1+ (EVAL **)))
)
(DEFUN -- (**)
(SET ** (1- (EVAL **)))
)
这很好:
(++ 'a)将+1加到a上
( - 'a)将a减1
我只是想知道我是否可以避免这种情况,只是(++ a)而不是(++ 'a)
谢谢您的回答 是的,我认为我的++不如简单的1+高效,但是我真的更喜欢花半秒多一点的时间(在充满3dplines的8.7mb文件中计时)而不是输入很多次(setq...).相信我,在几个小时的编码之后,即使是这么简单的(setq x (1+ x)),我也要经过两三次眼睛,所以绝对更容易阅读(++ 'x),而且我真的不在乎花这半秒钟。
如果它是1+或1-就好了,但是1+在普通lisp
exactamente eso中是非破坏性函数。
不重要的是,在ARX,您可以使用一个包含开放标识和其他arx (doslib,runtime odcl,lsp)的VLX...因为这不是问题。
我是ARX的乞丐,所以我真的不能这么做,我只是想知道这是否可行。
又是thnx。
这很好,但恐怕有点困难:
从扫描的平面图来看,我有许多多边形、线条和文本,这应该考虑到其他图纸来组织,这次是由工程师用样条线直接在3D中制作的,我必须做的是:
检查图纸部分的Z值
如果两个多边形(高度)之间的差异大于X, 同一图形中的X变化
如果接下来的两条多边形的高度差大于X,则这些多边形的顶点数量必须与顶点数量更多的多边形(上方或下方的多边形)的顶点数量相同 ...同样,有时这个顶点可能有或多或少的点,这取决于地形
最后将样条线转换为样条线(不是通过pedit,原因很明显,我需要样条线而不是适应的样条线)
并根据高度将颜色更改为一些文本
将所有内容放在一个绘图中...
我已经决定使用列表而不是选择集
信不信由你,这并不难做到,难的是将伪代码翻译成真正的代码,其中像(setq x (1+ x))这样的东西开始到处出现。这就是(++ 'a)有所帮助的地方。我希望你能理解我的英语
抛开所有其他因素...
(defun ++ (**)
(set ** (1+ (eval **)))
)
(defun Test1 (/ a)
(setq a 0)
(repeat 1000
(setq a (1+ a))
)
)
(defun Test2 (/ a)
(setq a 0)
(repeat 1000
(++ 'a)
)
)
(benchmark '((Test1) (Test2)))
基准.............1024次迭代/相对计时所用的毫秒数:
(测试2).....3672 / 5.7285
(测试1)......641 / 1
我不认为(++ 'a)更容易阅读。
我认为速度损失也是不使用它的一个很好的理由。 我同意这不是更有效,但它是这样工作的:
1200 plines与命令的所有进程需要
0.446秒,++
0.143秒,setq和1+
我真的不在乎0.303秒,以便更舒适地编写代码,即使需要一秒钟,我也会很高兴。我想在命令行实现-even-一个微调器,大概0.25秒以上没问题。
(setq x(1+x)) --> (++ 'x)不容易阅读?在这里我们不同意。
页:
[1]