是否存在 setfable nthcdr 实现?
我正在使用 clisp,我想知道是否有任何带有可设置版本的 nthcdr 的库可供我使用。
I am using clisp and I wonder if there is any library with a setfable version of nthcdr that I can use.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你可以用以下方法解决它:
或者为它定义你自己的 setf:
我不知道为什么 nthcdr 没有定义 setf。甚至 Alexandria 似乎也将 setf 定义为最后一个,而不是 nthcdr 。
附言。我会将想要设置 nthcdr 视为代码中的难闻气味。
You can hack around it with:
Or define your own setf for it:
I do not know why nthcdr does not have a setf defined. Even Alexandria seems to define setf for last, but not nthcdr.
PS. I would treat wanting to setf an nthcdr as a bad smell in your code.
当 n 为 0 时不起作用,当 LIST 是一个符号时,您可以使其工作,在宏扩展时检查 N 是否为零,但仅当 N 是数字时才起作用,或者在扩展代码中包含检查。
Doesn't work when n is 0 though, you could make it work when LIST is a symbol, checking if N is zero either on macroexpansion time, but then it only works if N is a number, or including the check in the expanded code.