小编Rod*_*igo的帖子

Ruby保护可见性从超类调用

我有这个小代码似乎在某种程度上与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'

我错过了什么?显然,选项"接收者必须是发送者的子类"是不可用的.

ruby protected nomethoderror

12
推荐指数
1
解决办法
174
查看次数

难以理解Java规范

阅读Java SE规范中的参考类型转换时:

给定编译时引用类型S(源)和编译时引用类型T(目标),如果由于以下规则而没有发生编译时错误,则从S到T存在转换转换.

我一直在寻找以下条件:

如果S是类类型:如果T是类类型,则为|S| <: |T|或者|T| <: |S|.否则,发生编译时错误.

此外,如果存在T的超类型X和S的超类型Y,使得X和Y都可证明是不同的参数化类型(§4.5),并且X和Y的擦除是相同的,则编译时发生错误.

谁能举个例子说明这种情况?

编辑:

有关该文章的进一步说明,请参阅此链接中的第5.5.1

java specifications

7
推荐指数
1
解决办法
121
查看次数

伊莎贝尔的基础

一年半前,我开始在 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。这是上述博士论文的修订版。

isabelle

6
推荐指数
0
解决办法
143
查看次数

将“const char *”传递给“char *”类型的参数会丢弃限定符

我收到警告:

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)

应该如何删除这个警告以便两者都能正常工作?

c c++ objective-c gcc-warning

5
推荐指数
1
解决办法
2万
查看次数

UML.参数有限的泛型类

我在Java中有以下泛型类头:

class OrganizedGroup <T extends Leader> 
Run Code Online (Sandbox Code Playgroud)

该类代表一个有组织的团体.例如,音乐团体会有音乐领导者,企业会有老板......

如何使用UML表示T扩展Leader的条件?

备注/编辑:

对于泛型和UML有不同的问题.但是,我的问题询问和附加限制参数应该在图中显示为另一个类的子类.

java generics uml extends

4
推荐指数
1
解决办法
742
查看次数

Combinator /:在scala中

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)

scala

4
推荐指数
1
解决办法
2177
查看次数

伊莎贝尔的文件准备

我想获得与该理论相关的 LaTeX 代码。以前的答案仅提供指向文档的链接。让我描述一下我做了什么。

我转到目录Hales.thy并执行isabelle mkroot,然后是isabelle build -D .,它生成了一个名为 document 的文件和一个*.pdf可疑(几乎)为空的文件。通过添加Hales.thy为参数来修改此命令未成功。

如果有人能简要描述所需的命令,我将不胜感激。

latex isabelle

4
推荐指数
1
解决办法
416
查看次数

Coq 中布尔表达式的案例证明

我有一个包含功能:

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成立的案例分析来证明一个定理。但是,当我对这个布尔值进行破坏时,对于不同的子案例,我没有得到任何额外的假设。

我该如何解决这个问题?

coq

4
推荐指数
1
解决办法
152
查看次数

Haskell标识符中\的含义

这种技巧之一,当你不熟悉一种语言时,更难找到,但其他人都知道并使用它.

在我的情况下,我想知道当你有一个变量的名称时,它是什么意思,比如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的翻译是什么?

lambda haskell identifier

1
推荐指数
1
解决办法
203
查看次数

Applicative 风格的动作之间的通信

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)

haskell ghci applicative

1
推荐指数
1
解决办法
58
查看次数

地图不需要在Scala中推断出codomain?

以下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没有推断类型的函数...

functional-programming scala

0
推荐指数
1
解决办法
120
查看次数

在 Scala 的函数定义中省略参数

我可以???在函数体中写入以使其未实现(此功能在何处记录)?

我想知道如何不指定参数,即def f(param1, ???).

scala

0
推荐指数
1
解决办法
62
查看次数