neophoible 发表于 2022-7-6 07:25:08

 
好啊当名单很短的时候,我不得不同意。但现在我很好奇,当增加列表时,这一切是否仍然成立。人们很可能希望一次完成几项输出。问这个问题的另一种方法是,有没有更好的方法将打印函数应用于更有价值的列表?还是你更喜欢大量的印刷品,普林斯和普林斯?

Lee Mac 发表于 2022-7-6 07:29:58

 
这取决于要打印的数据;如果数据已经是列表格式,那么我会选择foreach循环来打印列表中的每个项目(因为可能不需要返回prin*评估);然而,如果数据不是列表格式,我认为没有理由仅仅为了使用列表迭代器(如mapcar/foreach等)来打印数据而构建列表。

neophoible 发表于 2022-7-6 07:30:42

谢谢分享,李。了解专家的知识总是很有趣的。
 
除非你想懒洋洋地写代码?从你已经说过的话,我猜在我提到的案例中,foreach将是你对mapcar的偏好。
 
我想你的不情愿是因为有额外的时间让程序运行?还是内存限制?在这种情况下,我从来没有想过多少。对于我做过的大多数事情来说,这似乎没什么大不了的,尤其是与画画本身相比,但我不能说我做过任何时间研究。

neophoible 发表于 2022-7-6 07:34:58

 
这个警告就在我头上。李或斯特凡,这是怎么回事?

Lee Mac 发表于 2022-7-6 07:38:11

 
同样,这取决于应用程序,如果我需要返回prin*评估,我会选择mapcar,因为每个评估的结果都存在于返回的列表中(而foreach需要额外的变量和列表构造);这一切都是关于为工作选择正确的工具。
 
 
无论任务的应用程序或小型性质如何,我总是努力尽可能高效地编写代码,同时也保持可读性的平衡,以保持代码的可维护性(例如,如果代码变得不必要的模糊,那么最大效率并不总是一条可行的途径)。
 
然而,我要说的是,如果你发现自己在源代码中一遍又一遍地重复表达式,那么通常是时候重新思考数据的结构和存储方式了。
 
 
考虑一个需要引用符号参数的函数:
正常运行时:
然而,如果函数被传递了一个与参数符号匹配的带引号的符号,因为参数符号是函数的局部符号,在评估时,您评估参数符号是为了显示参数数据,而不是传递给函数的符号:
该概念类似于其他语言中的间接寻址,例如,考虑以下控制台示例:
通过将相同的符号作为参数传递给函数,可以有效地执行以下操作:
18

neophoible 发表于 2022-7-6 07:43:39

李,非常感谢你的解释。你很彻底。我对这个想法有点了解,至少是间接的。
 
因此,他将传递论点的名称。如果是这样的话,如果它通过了“*sym*,它也适用于你的。
 
我只是在反复思考这个问题,如果传递一个本地使用的符号,看起来应该非常小心。这可能导致警告:除非您确定调用例程不使用符号,否则不要传递符号(或者您有很好的理由这样做,并且确实知道您正在做什么,例如,制定了命名系统等等)。
 
再次感谢李。我感谢你分享你的专业知识。

Lee Mac 发表于 2022-7-6 07:46:25

眼睛看看那里发生了什么
不客气。
 
事实上,当传递引用的符号时,这个问题是无法解决的(据我所知);因此,在不控制代码使用位置的情况下(如在本线程中),我建议遵循与使用相对模糊的符号处理全局变量时相同的逻辑-这就是为什么我最初提出这一点,因为“x”是一个非常常见的变量名。
 
精确地
 
非常欢迎你;我贴出的解释只是我对这些概念的理解,因此可能不是所有时间都是百分之百正确的,但我公开欢迎比我更有知识的其他人的纠正。
页: 1 [2]
查看完整版本: 附加字符串和变量