评估条款开头的表达式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了评估条款开头的表达式相关的知识,希望对你有一定的参考价值。
有没有办法在findall/3
条款中评估这个总和?
findall((A+C,[M,H|_]),(b_to_b(H,M,C),\+ member(M,[H|T])),R).
在这里我得到像(1+3,List)
这样的值,我正在寻找一些捷径,以便我得到价值4
而不是(1+3)
我明白问题是什么,但快捷方式会很好,否则我必须重新访问整个列表,这并不好。
谢谢
答案
假设A已经绑定到数字,只需将评估从模板移动到目标:
...,
findall((S,[M,H|_]),(b_to_b(H,M,C),\+ member(M,[H|T]), S is A+C),R).
效率提示:您还应该将member / 2更改为memberchk / 2。
以上是关于评估条款开头的表达式的主要内容,如果未能解决你的问题,请参考以下文章
IntelliJ:求值lambda表达式在调试时引发编译错误
错误代码:错误域 = NSCocoaErrorDomain 代码 = 3840“JSON 文本没有以数组或对象和允许未设置片段的选项开头。”