我正在寻找以下行为的解释:
这些是类:
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) 如果我写:
> 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的新手.我究竟做错了什么?(无法破译的错误信息......)如何使用foldr1与max?谢谢.
编辑(接受答复后):
只是为了展示一些违约规则效果的例子(答案也解释了这些):
例1:
> let max' …Run Code Online (Sandbox Code Playgroud) 我很困惑证明
A ==> B ==> C ==> B
Run Code Online (Sandbox Code Playgroud)
在伊莎贝尔.显然你可以
apply simp
Run Code Online (Sandbox Code Playgroud)
但我怎么能用规则证明这一点呢?
或者,有没有办法转储使用的规则simp?谢谢.
我正在遵循“ 实用逻辑和自动推理手册 ”的代码库的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) 我想用 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 中可能吗?
在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中的警告?
我有以下文件格式:
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) 我正在寻找一个示例,该示例表明XQuery表达式评估不是顺序的。在将XQuery的功能性质与过程语言进行比较时,总是会提到它。
例如,在以下部分的XQuery,第2版中:
FLWOR表达式及其for子句类似于过程语言(例如C)中的循环。但是,一个主要区别是在XQuery中,因为它是一种功能语言,所以认为迭代没有特定的顺序。它们不一定先后顺序发生。
我正在为Isabelle2013/HOL寻找免费提供的优质教程和文档(除了谷歌和挖掘之后的明显的教程和文档).你能推荐一下吗?
如何告诉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) 有没有一种方法可以通过AspectJ编译来获取源文件?因此,ajc不会获取字节码,而是用作生成可以用javac编译的Java源的预处理器?
java ×3
haskell ×2
isabelle ×2
antlr ×1
antlr4 ×1
antlrworks ×1
aspectj ×1
inheritance ×1
java-8 ×1
java-stream ×1
maxima ×1
overriding ×1
parsing ×1
picocli ×1
preprocessor ×1
shadowing ×1
token ×1
xquery ×1