0

假设我们有以下代码:

local L in
    L = {List.make 10 $}
    % Bind nth element to something here
end

如何设置这些未绑定的值?Oz List Documentation没有对此有所说明。我发现的唯一相关问题是:如何更改 Oz 列表中的元素?答案没有为我编译,我也没有找到如何编译它。

4

2 回答 2

0

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。

于 2015-04-07T12:38:38.953 回答
0

实际上,我能够使用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
$}
于 2015-04-06T14:27:17.617 回答