llsheng_73
发表于 2024-12-24 13:14:35
本帖最后由 llsheng_73 于 2024-12-24 13:19 编辑
既然给定的repeat次数不必运行够就可能得到需要的结果,说明它不适合通过repeat来处理,至于用什么来做到“满足要求立即返回”,要看具体情况,通常用while,也可能vl-some,vl-every比while更适合,总之要看具体情况
提问一般需要:问题描述,测试数据,想要的结果,现有的代码及自己发现的问题,少了这些就会比较费时间
baitang36
发表于 2024-12-25 03:44:25
lisp源码没有break语句,不能实现repeat的中途退出。
但fas是可以的。
从汇编的角度来看,任何循环语句都是判断和跳转。把跳转改一下,就能实现你想要的功能。
试验过程如下:
命令: (LOAD "Z:/tmp.lsp")
命令: (aa 6)
012345
命令:
命令: (LOAD "Z:/tmp1.fas")
命令: (aa 6)
0123
例子见附件。
wide
发表于 2024-12-25 07:13:50
感谢大佬的讲解和举例说明。