Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
clojure-将项添加到嵌套集_Clojure - Fatal编程技术网

clojure-将项添加到嵌套集

clojure-将项添加到嵌套集,clojure,Clojure,假设我有这样一套: #{#{"a"} #{"b"} #{"c"}} 假设我想更新中间集,使s成为: #{#{"a"} #{"be"} #{"c"}} 我将如何实现这一点 (-> #{#{"a"} #{"b"} #{"c"}} (disj #{"b"}) (conj #{"be"})) => #{#{"a"} #{"be"} #{"c"}} (当然,没有成套的顺序,它很可能以任何顺序显示) (当然,在集合中没有顺序,它很可能以任何顺序显示)。你所说的“中间”集合到底是什么意思?

假设我有这样一套:

#{#{"a"} #{"b"} #{"c"}}
假设我想更新中间集,使s成为:

#{#{"a"} #{"be"} #{"c"}}
我将如何实现这一点

(-> #{#{"a"} #{"b"} #{"c"}} (disj #{"b"}) (conj #{"be"}))

=> #{#{"a"} #{"be"} #{"c"}}
(当然,没有成套的顺序,它很可能以任何顺序显示)


(当然,在集合中没有顺序,它很可能以任何顺序显示)。

你所说的“中间”集合到底是什么意思?包含“b”的那个?或者是一个恰好打印在中间的那个词?B是我的意思,然后下一个问题是“更新”是什么意思?很容易回答这个问题,从它中创建一个新的集合,它不包含<代码> {{b}< /Cord>,然后用那个集合创建另一个集合,用<代码> {{}}。已添加。但是,对第一个集合的所有预先存在的引用仍将保持不变。如果要更改原始集合,以便将
{b}
替换为
{be}
,并被所有预先存在的引用视为相同,这是另一种情况(而且更复杂)问题。@BobJarvis您唯一可以更改的是引用所引用的内容:
@form
/
(deref form)
的结果。您在任何时候都不能更改引用的标识,也不能更改引用所引用内容的标识。为什么所有嵌套集都只有一个元素?您所说的“中间”到底是什么意思“设定?包含“b”的那个?或者是一个恰好打印在中间的那个词?B是我的意思,然后下一个问题是“更新”是什么意思?很容易回答这个问题,从它中创建一个新的集合,它不包含<代码> {{b}< /Cord>,然后用那个集合创建另一个集合,用<代码> {{}}。已添加。但是,对第一个集合的所有预先存在的引用仍将保持不变。如果要更改原始集合,以便将
{b}
替换为
{be}
,并被所有预先存在的引用视为相同,这是另一种情况(而且更复杂)问题。@BobJarvis唯一可以更改的是引用所引用的内容:
@form
/
(deref form)
的结果。任何时候都不能更改引用的标识,也不能更改引用所引用内容的标识。为什么所有嵌套集都只有一个元素?