我想将一个列表中的多个项目添加到另一个列表中,该列表组织在一个大列表中,如矩阵。
let targetlists (list firstlist seccondlist thirdlist)
所以在我的double while循环中,我添加了这段代码;
set (item x targetlists) lput (item y sourcelist) (item x targetlists)
可悲的是,它给了我以下错误:
这不是你可以使用“设置”的东西。
我发现它与我如何选择目标列表有关,因为以下代码确实有效,但是没有做我想要的事情:
set firstlist lput (item y sourcelist) firstlist
答案 0 :(得分:1)
JenB是正确的,一般来说,你使用replace-item
。但是,将while
循环替换为map
会更有效。
我不完全确定您要尝试做什么,但看起来您正试图将sourcelist
的元素放在targetlists
的列表末尾。{ 1}}。即使这不是您正在做的事情,这也应该指向正确的方向:
set targetlists (map [ [ source-item target-row ] ->
lput source-item target-row
] sourcelist targetlists)
这将一起遍历sourcelist
和targetlists
的项目,在对上调用lput
。
此外,还有一个方便的快捷方式,如果记者已经按照您的意愿行事,您可以直接将其传递给map
。所以你可以将其浓缩为:
set targetlists (map lput sourcelist targetlists)
现在,鉴于您提到嵌套的while
并且您正在使用两个不同的索引索引到两个列表,您可能会尝试将sourcelist
的全部内容放到最后每个targetlists
。如果是这样的话,你可以做到
set targetlists map [ l -> (sentence l sourcelist) ] targetlists
如果我完全离开,并且您尝试做一些完全不同的事情,请在评论中告诉我,我会更新我的答案。