微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在过程调用中强制从左到右求值顺序

如何解决在过程调用中强制从左到右求值顺序

在某些情况下,以保证从左到右的评估顺序调用过程很有用。例如,当使用从端口读取的数据调用记录构造函数时,顺序很重要。通常,字段的顺序与文件中的顺序相同,因此不需要重新排列。因此,通过let*引入名称和排序的常用方法有点麻烦。

标准库中是否有提供此功能的现成语法?基本上,我希望写的不是(f a b c),而是类似(ordered f a b c)

(let* ((t0 f)
       (t1 a)
       (t2 b)
       (t3 c))
  (t0 t1 t2 t3))

从新符号t0t3

解决方法

您提出的情况还不够普遍,不足以作为标准库中的功能提供,特别是考虑到let*的解决方法非常简单。此外,该语言使您能够通过其宏编写功能轻松地为自己提供此功能,这意味着它应该放在标准库中的理由就更少了。如果您发现自己需要做很多事情,请在您的库中编写一个宏。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。