假设我有以下类型类
class Silly (t :: * -> *) where
-- details
我希望能够表达以下约束,但我不确定这是否可能。
class (Silly s) => Willy (s t) where
-- details
基本上,我想对类型构造函数施加一个约束,而不是整个类型。这句话能表达吗?我甚至不知道这种约束会被称为什么,所以谷歌一直没有帮助。
编辑:我有一个数据类型
data Reasoner logic atoms a = Reasoner { unReasoner :: MassAssignment atoms -> a
在一段代码中,我想做一种元编程,我想要定义一个函数,我可以将它作为参数传递给某些类型(所以不是类型的实例,而是类型本身)。
我想把接受的类型限制为某个类或它的后代。
我试图通过以下代码来实现这一点:
class ABase {}
class AConc extends ABase {}
class B {}
interface IAClass {
new(): ABase;
}
function meta(AT: IAClass) {
console.log('foo');
}
// This gives an error, as it should.
meta
我对通过get-value生成模型值有一个问题。如果我试图获得一个数组的值,我将得到一个包含内部z3常量的值,但没有打印出来。我知道get-model会打印这些常量,但我还是坚持使用get-value。
下面是一个例子(我在rise4fun上试用过):
(declare-const b (Array Int Int))
(declare-const a (Array Int Int))
(assert (= (store a 1 2) b))
(check-sat)
(get-value (b a))
返回:
sat ((b (_ as-array k!1)) (a (_ as-array k
示例文档:
我有一个工作脚本,可以在指定的工作表ID中添加或删除编辑器几个月,直到最近它才开始出现以下错误:
Exception: The parameters (number[]) don't match the method signature for SpreadsheetApp.Spreadsheet.removeEditor.
最近关于我提供的脚本的输入没有什么改变,所以我有点不知所措。
该脚本如下:
function runEmailAccess(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
va