我有这个小代码似乎在某种程度上与Ruby的文档相矛盾:
第二个可见性是
protected.当调用受保护的方法时,发送方必须是接收方的子类,或者接收方必须是发送方的子类.否则NoMethodError将提出一个.
class Test
def publico(otro)
otro.prot
end
end
class Hija < Test
protected def prot; end
end
Test.new.publico(Hija.new)
Run Code Online (Sandbox Code Playgroud)
我得到以下输出:
NoMethodError:为#publico调用的受保护方法`prot'
我错过了什么?显然,选项"接收者必须是发送者的子类"是不可用的.
阅读Java SE规范中的参考类型转换时:
给定编译时引用类型S(源)和编译时引用类型T(目标),如果由于以下规则而没有发生编译时错误,则从S到T存在转换转换.
我一直在寻找以下条件:
如果S是类类型:如果T是类类型,则为
|S| <: |T|或者|T| <: |S|.否则,发生编译时错误.此外,如果存在T的超类型X和S的超类型Y,使得X和Y都可证明是不同的参数化类型(§4.5),并且X和Y的擦除是相同的,则编译时发生错误.
谁能举个例子说明这种情况?
编辑:
一年半前,我开始在 Isabelle 编写证明程序。那时我主要写 Isabelle/Isar 证明。最近,我一直在做一些 Isabelle/ML 级别的编程。我发现这篇描述 Isar 结构的博士论文非常鼓舞人心。我想知道是否有类似的来源可以了解 Isabelle 的基础。我在1989 年找到了这篇论文,在 1990 年找到了 Larry Paulson 的这篇论文。这是否描述了系统的当前基础?
更新:
我在Joshua Chen 的论文中找到了迄今为止对 Isabelle/Pure 最清楚的解释。关于内核如何隐藏定理创建有单独的关注。但这似乎是一种基于抽象数据类型的语言特性。
更新 2
在 Isabelle 的邮件列表的主题Explanation of derivation in Isabelle'sformal system下已经有一些讨论。指出的进一步参考是Isabelle/Isar implementation reference。这是上述博士论文的修订版。
我收到警告:
miniunz.c:342:25:将“const char *”传递给“char *”类型的参数会丢弃限定符
在Zip Archive 库的 miniunz.c 文件中。具体来说:
const char* write_filename;
fopen(write_filename,"wb"); //// This work fine...........
makedir(write_filename); //// This line shows warning....
Run Code Online (Sandbox Code Playgroud)
应该如何删除这个警告以便两者都能正常工作?
我在Java中有以下泛型类头:
class OrganizedGroup <T extends Leader>
Run Code Online (Sandbox Code Playgroud)
该类代表一个有组织的团体.例如,音乐团体会有音乐领导者,企业会有老板......
如何使用UML表示T扩展Leader的条件?
备注/编辑:
对于泛型和UML有不同的问题.但是,我的问题询问和附加限制参数应该在图中显示为另一个类的子类.
scala中这个组合子的含义是什么? /:
我在几个例子中找到了它:
override def toString(): String = {
("" /: cfg) ((str: String, b: BasicBlock) => str + "Block " + b.id)
}
Run Code Online (Sandbox Code Playgroud)
要么
val successorIns = b.getSuccessors().map(in(_))
val newValue = (top() /: successorIns) (meet(_, _))
Run Code Online (Sandbox Code Playgroud) 我想获得与该理论相关的 LaTeX 代码。以前的答案仅提供指向文档的链接。让我描述一下我做了什么。
我转到目录Hales.thy并执行isabelle mkroot,然后是isabelle build -D .,它生成了一个名为 document 的文件和一个*.pdf可疑(几乎)为空的文件。通过添加Hales.thy为参数来修改此命令未成功。
如果有人能简要描述所需的命令,我将不胜感激。
我有一个包含功能:
Fixpoint contains (l: list string) (x: string): bool :=
match l with
| [] => false
| h :: tl => (if (string_dec h x) then true else (contains tl x))
end.
Run Code Online (Sandbox Code Playgroud)
它检查字符串是否在字符串列表中。我想通过对是否contains (vars e) y成立的案例分析来证明一个定理。但是,当我对这个布尔值进行破坏时,对于不同的子案例,我没有得到任何额外的假设。
我该如何解决这个问题?
这种技巧之一,当你不熟悉一种语言时,更难找到,但其他人都知道并使用它.
在我的情况下,我想知道当你有一个变量的名称时,它是什么意思,比如ts,你把符号放在\它之前:
newtype Parser a = Parser (String -> [(String, a)])
produce :: a -> Parser a
produce x = Parser (\ts -> [(ts, x)])
Run Code Online (Sandbox Code Playgroud)
我猜这是抽象变量?如果是这样,那么它对其他语言如Scala的翻译是什么?
Haskell 设计模式,写了这个例子:
(+) <$> Nothing <*> Just 10 <*> Just 20
Run Code Online (Sandbox Code Playgroud)
证明 Applicative 风格的动作之间的交流有限。
问题是我没有让这个例子在 ghci 中编译,出现错误:
<interactive>:28:1: error:
• Non type-variable argument in the constraint: Num (a -> b)
(Use FlexibleContexts to permit this)
• When checking the inferred type
it :: forall a b. (Num (a -> b), Num a) => Maybe b
Run Code Online (Sandbox Code Playgroud) 以下Scala代码:
val l = List((1,2),(2,3),(3,4))
def fun1(t1: Int,t2: Int) = (t1+1,t2)
l map fun1
Run Code Online (Sandbox Code Playgroud)
给出错误:
Error:(3, 8) type mismatch;
found : (Int, Int) => (Int, Int)
required: ((Int, Int)) => ?
l map fun1;}
^
Run Code Online (Sandbox Code Playgroud)
我想知道为什么map必须有一个codomain没有推断类型的函数...
我可以???在函数体中写入以使其未实现(此功能在何处记录)?
我想知道如何不指定参数,即def f(param1, ???).
scala ×3
haskell ×2
isabelle ×2
java ×2
applicative ×1
c ×1
c++ ×1
coq ×1
extends ×1
gcc-warning ×1
generics ×1
ghci ×1
identifier ×1
lambda ×1
latex ×1
objective-c ×1
protected ×1
ruby ×1
uml ×1