- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我对如何将从 assoc
过程中获得的列表附加到另一个列表中感到有点困惑,这是我所拥有的:
(define new-list (list 'test))
(define source-a (list '(a foo) '(b bar) '(c hello)))
(append new-list (assoc 'a source-a))
(display new-list)
输出只是(test)
,我不确定为什么不是(test a foo)
。可以这样追加吗?
最佳答案
那是因为 append
不是一个变异函数。它返回一个新 列表,其参数附加在一起。按照 Scheme 的约定,执行变异的函数以感叹号结尾,例如 set!
。
您可以使用set!
来修改new-list
以便更新它,如下所示:
(set! new-list (append new-list (assoc 'a source-a)))
但是,在 Scheme 中,这是非常不鼓励的。命令式编程大量使用变异,而函数式编程语言(包括 Scheme)则尽量避免变异和副作用,因为它们会使程序更难推理。
理想情况下,您只需声明一个具有新值的新绑定(bind),而不是更新现有绑定(bind)。像这样的东西会工作得很好:
(define original-list (list 'test))
(define source-a (list '(a foo) '(b bar) '(c hello)))
(define new-list (append original-list (assoc 'a source-a)))
(display new-list)
关于scheme - 将 assoc 中的列表附加到 Scheme 中的另一个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28962257/
我想向 map 添加条目,但前提是该 map 不包含我要添加的键。 IE。我想做插入但不想更新。我为他创建了 2 个函数: (defn assoc-if [pred coll k v] (if p
我已经做了一段时间(assoc-in my-hash [:data :id] 1),看起来不错。 最近,由于我很少有超过两个级别,我注意到我可以执行 (update my-hash :data ass
这可能是完全显而易见的,但为什么我在向此 JavaScript 数组添加键值对时没有获得预期的 JSON 字符串? 下一步:正如代码所示,我实际上希望在对象中有两个数据集。 jsFiddle here
有没有优雅的方法来检查是否 $review['passenger']有任何$review['passenger']['*']吗? 最佳答案 尝试使用 is_array()。它将检查它是否是一个数组 -
有人可以使用 (assoc-in) 解释以下结果背后的原因吗? ? (assoc-in {:foo {:bar {:baz "hello"}}} [:foo :bar] "world") => {:f
您好,我正在尝试在字符串中单独显示随机值 key 对。我希望值和键保持在一起。 charAT = { 'Flamethrower' : Math.floor(Math.random(
这个问题在这里已经有了答案: How can I access object properties containing special characters? (2 个答案) 关闭 9 年前。 我
如何在 PHP 中使用 while 语句中的两个不同查询创建关联数组? 一个查询必须已经在 while 语句中,这里是不使用数组的代码,我想将其转换成这样 “类别”=> 该类别中的帖子数 当前代码:
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 6 年前。 Improve this qu
我写了这个函数,如果给定的参数匹配则返回 t,否则返回 nil。 (defun match (input-form pattern) (cond ((and (not input-form
我想做的事: (mapcar #'assoc '(a s) '((a . b) (c . d) (s . f))) 让它返回 ((A . B) (S . F)) 这似乎很合理,考虑到 (assoc '
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 6 年前。 Improve
在 https://www.codeigniter.com/user_guide/database/results.html 处的所有 Codeigniter 查询示例中,我发现必须知道字段的名称才能
我正在尝试这段代码: if ($result = $this->mysqli->prepare("SELECT * FROM `mytable` WHERE `rows1`=?"))
我正在尝试将一个关联数组从一个函数传递到另一个函数,并且正在丢失命名索引键(例如,文件路径,在下面的示例中进行搜索),尽管传入的数组可以使用索引 0、1 正确访问其元素。我一定是 bash 语法出了点
assoc-in 可以更改向量/映射中索引/键的值。在映射中,如果键不存在,则会创建一个新的键/值对。向量是否有类似的东西(如果索引不存在,它会在该索引处创建一个包含该值的列表),例如: (redu
在 OCaml 的 List 模块中,val assoc : 'a -> ('a * 'b) list -> 'b 是如何实现的,(因此)它的复杂度是多少手术 ?幕后是否隐藏了 hashtbl? 最佳
我正在通过解决问题来学习 Clojure,我陷入困境 with one of them ,基本上我必须在日志文件中找到前五个字符串。 这是我到目前为止所得到的: (ns topfive (:imp
我正在尝试通过不限制函数指针参数接受具有特定类型参数的函数来“破解”类型系统。但是,我仍然想让它成为类型安全的,所以我想我会将这种“hack”与 _Generic 关键字的可能性结合起来。 我有以下四
在 OCaml 的 List 模块中,val assoc : 'a -> ('a * 'b) list -> 'b 是如何实现的,(因此)它的复杂度是多少手术 ?幕后是否隐藏了 hashtbl? 最佳
我是一名优秀的程序员,十分优秀!