假设我们有以下代码:
local L in
L = {List.make 10 $}
% Bind nth element to something here
end
如何设置这些未绑定的值?Oz List Documentation没有对此有所说明。我发现的唯一相关问题是:如何更改 Oz 列表中的元素?答案没有为我编译,我也没有找到如何编译它。
假设我们有以下代码:
local L in
L = {List.make 10 $}
% Bind nth element to something here
end
如何设置这些未绑定的值?Oz List Documentation没有对此有所说明。我发现的唯一相关问题是:如何更改 Oz 列表中的元素?答案没有为我编译,我也没有找到如何编译它。
wmeyer 是对的,完整的实现可以是例如:
declare
local L I V in
L = {List.make 10}
I=5 %index to be bound
V=1 %value for bound
{List.nth L I}=V
{Browse L}
end
你会得到正确的输出[_ _ _ _ 1 _ _ _ _ _]
。您也可以直接访问 en 元素,但这不是编程解决方案,因为您可能知道每个列表都是一个 cons (head|tail),因此您可以使用 L.1 访问第一个元素,然后使用 L.2.1 访问第二个元素,依此类推.. 最后一件事,您无需将“$”放在第二行,因为您已经将 List.make 的结果分配给 L。
实际上,我能够使用Oz List Documentation中的一些东西来让它工作!
declare Temp Index Value L in
L = {List.make 10 $}
Index = %Index to be bound
Value = %Value for bound
Temp = {List.mapInd L
fun {$ I B}
if I == Index then
B = Value
else
B
end
end
$}