问题标签 [declarative-programming]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 如何让合金在数据集上运行以检查所有规则
我已经建立了一个合金程序来检查系统的一些规则。现在我想检查真实系统中的规则。为此,我拥有来自真实系统的所有数据。例如,
我的合金工具检查了两个用户之间寻找共同朋友的规则。我可以通过在合金中给出一些简单的规则来做到这一点。现在,我想在一个大数据集中对其进行测试。假设,我有 facebook 朋友数据集。现在,我如何将我的 facebook 数据集提供给使用 Alloy 查找 Facebook 用户的共同朋友的合金。
是否可以编写一个 javascript/python/java 的包装器来在我的合金分析器和 json 数据之间建立链接?
alloy - 更改合金系统内对象的服务代码
每当有任何服务对其进行操作时,我都想更改对象的服务代码。假设我有一个操作适用于一个对象,该对象的服务代码将为 1,当另一个操作执行时,服务代码将再次为 2。我想将最新的服务代码保存到每个对象。不幸的是,我不能很好地设计我的谓词,这就是为什么从合金中得到谓词不一致的消息。
我尝试了一些代码来为每个对象分配服务代码。如下所示的完整代码 -
当我只有一个操作链接到一个对象时,上面的代码可以正常工作。我在这里附上了它的图表。每当有多个操作时,合金就无法找到一个实例。需要帮助设计合金代码以实现我的目标。
另一种可能的方法可能是——我们可能有一个服务代码列表,而不是一个服务代码。考虑时间戳以及每个服务代码。然后什么时候需要找出最新的服务代码。我们可以取最大时间戳的服务代码。但我不确定如何用合金设计这个。
java - Java 函数式编程:如何将 for 循环中的 if-else 阶梯转换为函数式?
期望是从输入列表中派生 3 个列表itemIsBoth
, 。如何将下面的代码转换为功能样式?(我知道这段代码在命令式风格中足够清晰,但我想知道声明式风格真的无法处理这样一个简单的例子)。谢谢。aItems
bItems
items
javascript - for 循环的 javascript 功能/声明性版本(使用此示例)?
有这个代码
如何将其转换为更具声明性的版本?
代码是这样的,因为拆分采用了一个只解析一次文本的正则表达式,然后使用这些片段,我正在构建尽可能多的组件与myMagic
函数
那么有没有办法在不改变逻辑的情况下以更具声明性的方式编写它?
ios - 什么是 PassthroughSubject 和 CurrentValueSubject
我碰巧研究了 Apple 新的 Combine 框架,在那里我看到了两件事
PassthroughSubject<String, Failure>
CurrentValueSubject<String, Failure>
有人可以向我解释它们的含义和用途吗?
alloy - 使用 Double In 语句在合金中键入错误
我正在尝试编写一个谓词,使所有香蕉和新鲜苹果都变得昂贵。我能够达到其中一个条件,但不能同时满足这两个条件。我对使用 Alloy 非常陌生,非常感谢任何帮助。
下面是我的代码,发生错误是因为我使用了双 In 语句,但我不确定如何在不必使用两个 in 语句的情况下编写它。我收到的错误是“类型错误,这必须是一个集合或关系”
python - Python 声明式循环重构(需要访问多个元素)
嗨,我有这段代码,并试图将其重构为声明性的。但是AFAIK,所有像这样的声明性方法map()
reduce()
filter()
都会循环遍历容器的每个元素,而不是像这样
那么如何编写这段代码,声明式的方式呢?
java - 使用声明式样式查找一个 Set 中的字符串是否是另一个 Set 中的字符串的子字符串?
我有两个Sets
字符串,我需要查找一个字符串是否是另一个集合中任何字符串的子字符串。下面是命令式的等效代码。
我想出了不是很雄辩的声明性代码。
有没有办法流畅地编写相同的代码?
java - 使用流填充倍数列表
有没有办法使用 stream() 以 Java 8 声明式风格编写此方法?