小编TFu*_*uto的帖子

Java中包可见性的继承

我正在寻找以下行为的解释:

  • 我有6个类,{aA,bB,cC,aD,bE,cF},每个类都有一个包可见的m()方法,该方法可以写出类名。
  • 我有一个带有主要方法的a.Main类,对这些类进行了一些测试。
  • 输出似乎未遵循正确的继承规则。

这些是类:

package a;

public class A {
    void m() { System.out.println("A"); }
}

// ------ 

package b;

import a.A;

public class B extends A {
    void m() { System.out.println("B"); }
}

// ------ 

package c;

import b.B;

public class C extends B {
    void m() { System.out.println("C"); }
}

// ------ 

package a;

import c.C;

public class D extends C {
    void m() { System.out.println("D"); }
}

// ------ 

package b;

import a.D;

public class E …
Run Code Online (Sandbox Code Playgroud)

java inheritance overriding shadowing package-private

21
推荐指数
2
解决办法
597
查看次数

在Haskell中使用foldr vs foldr1

如果我写:

> let xs = [1,5,19,2,-3,5]
> foldr max 0 xs
19

> foldr1 max xs
19
Run Code Online (Sandbox Code Playgroud)

如果我写(我知道,这里的初始值对于通用最大函数是不正确的......):

> let maximum' = foldr max 0
> maximum' xs
19
Run Code Online (Sandbox Code Playgroud)

但如果我写:

> let maximum2' = foldr1 max
> maximum2' xs
Run Code Online (Sandbox Code Playgroud)

回应是:

<interactive>:61:11:
    Couldn't match expected type `()' with actual type `Integer'
    Expected type: [()]
      Actual type: [Integer]
    In the first argument of maximum2', namely `xs'
    In the expression: maximum2' xs
Run Code Online (Sandbox Code Playgroud)

我是Haskell的新手.我究竟做错了什么?(无法破译的错误信息......)如何使用foldr1max?谢谢.

编辑(接受答复后):

只是为了展示一些违约规则效果的例子(答案也解释了这些):

例1:

> let max' …
Run Code Online (Sandbox Code Playgroud)

haskell

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

在Isabelle中证明A ==> B ==> C ==> B.

我很困惑证明

A ==> B ==> C ==> B 
Run Code Online (Sandbox Code Playgroud)

在伊莎贝尔.显然你可以

apply simp
Run Code Online (Sandbox Code Playgroud)

但我怎么能用规则证明这一点呢?

或者,有没有办法转储使用的规则simp?谢谢.

isabelle

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

在Haskell代码中找不到$ form的含义

我正在遵循“ 实用逻辑和自动推理手册 ”的代码库的Haskell版本。以下情况的目的是什么$form

eval :: Formula -> (Rel -> Bool) -> Bool
eval fm v = case fm of
  [$form| ? |] -> True
  [$form| ? |] -> False
  [$form| ^a |] -> v a
  [$form| ¬ $p |] -> not (eval p v)
  [$form| $p ? $q |] -> eval p v && eval q v
  [$form| $p ? $q |] -> eval p v || eval q v
  [$form| $p ? $q |] -> not (eval …
Run Code Online (Sandbox Code Playgroud)

haskell

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

Picocli 需要根据主要选项选择选项

我想用 picocli 按以下格式解析选项:

application -mode CLIENT -c aaaa -d bbbb
application -mode SERVER -e xxxx -f yyyy
Run Code Online (Sandbox Code Playgroud)

mode是一个enum有价值观的人{ CLIENT, SERVER }

  • 如果mode == CLIENT,-c-d选项是强制性的,并且-e,-f不得使用。
  • 如果mode == SERVER,-e-f选项是强制性的,并且-c,-d不得使用。

换句话说,我想根据一个关键选项来选择所需的选项。这在 picocli 中可能吗?

java parsing command-line-arguments picocli

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

ANTLR4:隐式或显式标记定义

在ANTLR4中使用显式令牌定义有什么好处和缺点?我发现单个括号中的文本比创建单独的标记更具描述性且更易于使用,并使用它来代替文本.

例如:

grammar SimpleTest;

top: library | module ;

library: 'library' library_name ';' ;
library_name: IDENTIFIER;         

module: MODULE module_name ';' ;
module_name: IDENTIFIER;

MODULE: 'module' ;
IDENTIFIER: [a-zA-Z0-9]+;
Run Code Online (Sandbox Code Playgroud)

生成的令牌是:

T__0=1
T__1=2
MODULE=3
IDENTIFIER=4
'library'=1
';'=2
'module'=3
Run Code Online (Sandbox Code Playgroud)

如果我对'library'"令牌" 不感兴趣,因为规则已经确定了我所匹配的内容,而且无论如何我都会跳过它,用LIBRARY令牌声明替换它是否有意义?(然后令牌的数量会增加.)为什么这是ANTLRWorks中的警告?

antlr token antlrworks antlr4

3
推荐指数
2
解决办法
3348
查看次数

Java 8流发出流

我有以下文件格式:

Text1
+ continuation of Text1
+ more continuation of Text1 
Text2
+ continuation of Text2
+ more continuation of Text2
+ even more continuation of Text2
Run Code Online (Sandbox Code Playgroud)

延续标记为\n+.(换行符,加上字符,空格作为三个字符的字符串.)Continuations可以是任意数量的行,包括0.

我想要以下输出(每个是打印的行.forEach):

Text1 continuation of Text1 more continuation of Text1 
Text2 continuation of Text2 more continuation of Text2 even more continuation of Text2
Run Code Online (Sandbox Code Playgroud)

我想只使用Java流来进行转换,最好是使用Collect.有没有办法优雅地做到这一点?

编辑:

另一个更现实的例子:

Lorem ipsum dolor sit amet, consectetur 
+ adipiscing elit, sed do eiusmod tempor incididunt 
+ ut labore et dolore magna aliqua. Ut enim …
Run Code Online (Sandbox Code Playgroud)

java-8 java-stream

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

XQuery表达式评估的示例不是顺序的

我正在寻找一个示例,该示例表明XQuery表达式评估不是顺序的。在将XQuery的功能性质与过程语言进行比较时,总是会提到它。

例如,在以下部分的XQuery,第2版中:

FLWOR表达式及其for子句类似于过程语言(例如C)中的循环。但是,一个主要区别是在XQuery中,因为它是一种功能语言,所以认为迭代没有特定的顺序。它们不一定先后顺序发生。

xquery nonsequential

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

需要Isabelle/HOL教程/文档

我正在为Isabelle2013/HOL寻找免费提供的优质教程和文档(除了谷歌和挖掘之后的明显的教程和文档).你能推荐一下吗?

isabelle

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

最大值 - 内部数字表示废墟计算

如何告诉Maxima解决以下问题?("解决"部分):

我做了:

load(distrib);
fpprec: 100;
bftorat:true;
solve(2*bfloat(cdf_normal(x,0,1))-1=0.99999999999999999968130594071b0, [x]);
%,numer
Run Code Online (Sandbox Code Playgroud)

拿到:

(%o1) "/usr/share/maxima/5.32.1/share/distrib/distrib.mac"
(%o2) 100
(%o3) true
`rat' replaced -1.99999999999999999968130594071B0 by -199999999999999999968130594071/100000000000000000000000000000 = -1.99999999999999999968130594071B0
`rat' replaced 5.0B-1 by 1/2 = 5.0B-1
`rat' replaced 5.0B-1 by 1/2 = 5.0B-1
`rat' replaced 7.071067811865475244008443621048490392848359376884740365883398689953662392310535194251937671638207864B-1 by 118807941462947422469655519336079782367473013592460/168019802134529020067676914738440478110633605571601 = 7.071067811865475244008443621048490392848359376884740365883398689953662392310535194251937671638207864B-1
`rat' replaced 7.071067811865475244008443621048490392848359376884740365883398689953662392310535194251937671638207864B-1 by 118807941462947422469655519336079782367473013592460/168019802134529020067676914738440478110633605571601 = 7.071067811865475244008443621048490392848359376884740365883398689953662392310535194251937671638207864B-1
(%o4) [x=
(168019802134529020067676914738440478110633605571601*inverse_erf(99999999999999999968130594071/100000000000000000000000000000))/118807941462947422469655519336079782367473013592460]
inverse_erf: inverse_erf(1.0) is undefined.
 -- an error. To debug this try: debugmode(true);
Run Code Online (Sandbox Code Playgroud)

进一步尝试(看看理性替换是否影响inverse_erf):

inverse_erf(9.9999999999999999968130594071b?1);
gamma_incomplete: continued fractions failed for gamma_incomplete(5.0b-1, 1.675965338889773975600843228854238162008399514002414970690458801529039878850010279559673197036592113916729947593696740535214189646774061729913734402353264492788885098143556404059170138591463120333687838496039284224858192931635551067412157341539627014907074717352945374476804912353312948754404927014555821149803440423871160460111635311071245528519256957555845418916034380535359079516879576795825857468710891474077746896341697834315575814989209244705740463652472196503944998297956825510866851943203353716451062616549067258800559231646552924469724160521456041856694702333938138297284123098699530288993519920353577729741393726951293645734447176179175560311787410907660921783058989196733914852345086206761158383783714360001646880454976428470630991611033582649957934844195398077660932657131767136966243415075424193909691302431604307524134764326959890911322928113456129784004060990585972427799869290459688878023964671879763390452043333273689436077956597199441415992202082578463153853017929328667898523224007b0).
 -- an error. To debug …
Run Code Online (Sandbox Code Playgroud)

maxima

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

AspectJ编译时编织-获取输出源代码?

有没有一种方法可以通过AspectJ编译来获取源文件?因此,ajc不会获取字节码,而是用作生成可以用javac编译的Java源的预处理器?

java preprocessor aspectj compile-time-weaving

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