我想用oz替换列表中的项目。
所以让我说我有L = [1 2 3],我希望它是L = [1 4 3]。
怎么会这样做呢?我明白了
{List.member X +Ys ?B}
https://mozart.github.io/mozart-v1/doc-1.4.0/base/list.html
上的其他各种可能的功能但我真的不明白这些表达式的语法。我对奥兹很新。
答案 0 :(得分:0)
如果要交换编号为N的特定元素,您可以遍历列表直到找到它,然后替换它并将列表的其余部分保留在原位。这就像是
declare
fun {Swap Xs N Y}
case Xs of nil then nil % There is no Nth element, the list doesn't change
[] X|Xr then
if N==1 then Y|Xr % Replace _ with Y and append the rest
else X|{Swap Xr N-1 Y} end % Continue to iterate through the list, but keep the previous elements of the list
end
end
您还可以在Swap
内使用辅助功能,这样您就不必在每次递归调用时都传递Y,但我不想打扰您,因为您是初学者。< / p>