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

感谢大佬的讲解和举例说明。
页: 1 2 [3]
查看完整版本: 关于repeat