今天早些时候,我为iteratees编写了一个小型测试应用程序,该应用程序组成了一个iteratee,用于使用iteratee编写进度来实际复制数据.我结束了这样的价值观:
-- NOTE: this snippet is with iteratees-0.8.5.0
-- side effect: display progress on stdout
displayProgress :: Iteratee ByteString IO ()
-- side effect: copy the bytestrings of Iteratee to Handle
fileSink :: Handle -> Iteratee ByteString IO ()
writeAndDisplayProgress :: Handle -> Iteratee ByteString IO ()
writeAndDisplayProgress handle = sequence_ [fileSink handle, displayProgress]
Run Code Online (Sandbox Code Playgroud)
在查看枚举器库时,我没有看到类似的sequence_或enumWith.我想要做的就是编写两个迭代,以便它们作为一个整体.我可以放弃结果(()无论如何)或保留它,我不在乎.来自Control.Arrow的(&&&)是我想要的,仅适用于迭代而不是箭头.
我试过这两个选项:
-- NOTE: this snippet is with enumerator-0.4.10
run_ $ enumFile source $$ sequence_ [iterHandle handle, displayProgress]
run_ $ …Run Code Online (Sandbox Code Playgroud) 我正在尝试将我的词法分析器和解析器分开,基于Prolog和自然语言分析这本书的模糊建议,这本书并没有详细介绍lexing/tokenizing.所以我给它一个镜头,看到几个小问题向我表明我有一些明显的缺失.
我所有的小标记解析器似乎都正常工作; 目前,这是我的代码片段:
:- use_module(library(dcg/basics)).
operator('(') --> "(". operator(')') --> ")".
operator('[') --> "[". operator(']') --> "]".
% ... etc.
keyword(array) --> "array".
keyword(break) --> "break".
% ... etc.
Run Code Online (Sandbox Code Playgroud)
它有点重复,但似乎有效.然后我有一些我不太喜欢的东西,欢迎提出建议,但似乎有效:
id(id(Id)) -->
[C],
{
char_type(C, alpha)
},
idRest(Rest),
{
atom_chars(Id, [C|Rest])
}.
idRest([C|Rest]) -->
[C],
{
char_type(C, alpha) ; char_type(C, digit) ; C = '_'
},
idRest(Rest).
idRest([]) --> [].
int(int(Int)) --> integer(Int).
string(str(String)) -->
"\"",
stringContent(Codes),
"\"",
{
string_chars(String, Codes)
}.
stringContent([C|Chars]) -->
stringChar(C), stringContent(Chars).
stringContent([]) --> …Run Code Online (Sandbox Code Playgroud) 我是Java EE 6的新手,所以如果这个问题的答案显而易见,我会道歉.我有一个必须每小时运行一次从数据库重建Solr索引的任务.我还希望在部署应用程序时进行重建.我的直觉是这应该有效:
@Singleton
@Startup
public class Rebuilder {
@Inject private ProposalDao proposalDao;
@Inject private SolrServer solrServer;
@Schedule(hour="*", minute="0", second="0")
public void rebuildIndex() {
// do the rebuild here
}
}
Run Code Online (Sandbox Code Playgroud)
因为我正在使用myBatis,所以我写了这个制作人:
public class ProposalSessionProvider {
private static final String CONFIGURATION_FILE = "...";
static {
try {
sessFactory = new SqlSessionFactoryBuilder().build(
Resources.getResourceAsReader(CONFIGURATION_FILE));
}
catch (IOException ex) {
throw new RuntimeException("Error configuring MyBatis: " + ex.getMessage(), ex);
}
}
@Produces
public ProposalsDao openSession() {
log.info("Connecting to the database");
session = sessFactory.openSession(); …Run Code Online (Sandbox Code Playgroud) 我试图理解如何提高这个 C++ 代码的性能,使其与它所基于的 C 代码相提并论。C 代码如下所示:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
typedef struct point {
double x, y;
} point_t;
int read_point(FILE *fp, point_t *p) {
char buf[1024];
if (fgets(buf, 1024, fp)) {
char *s = strtok(buf, " ");
if (s) p->x = atof(s); else return 0;
s = strtok(buf, " ");
if (s) p->y = atof(s); else return 0;
}
else
return 0;
return 1;
}
int main() {
point_t p;
FILE *fp = fopen("biginput.txt", "r");
int i …Run Code Online (Sandbox Code Playgroud) 假设我有一些看起来像的表达式a /\ b \/ c.我想为此生成真值表,例如:
a | b | c | a /\ b \/ c
---+----+----+-------------+-
F | F | F | F
F | F | T | T
F | T | F | F
F | T | T | T
T | F | F | F
T | F | T | T
T | T | F | T
T | T | T | T
Run Code Online (Sandbox Code Playgroud)
这里的一个关键思想是处理尚未处理的运算符is/2,例如逻辑含义->.顺便说一句,这个问题来自reddit用户 …
是否可以使用hbm xml Hibernate配置以符合JPA 2.0的方式构建EntityManagerFactory和EntityManager?文档似乎表明这是不可能的:
"之前的教程使用了特定于Hibernate的hibernate.cfg.xml配置文件.但是,JPA定义了一个使用自己的名为persistence.xml的配置文件的不同引导过程." - 第4章
我的hbm xml配置长达数千行并且可以工作; 我宁愿不必手动重写为orm.xml和persistence.xml.我也没有对数据模型的写访问权来添加Hibernate或JPA注释.出于我的目的,我只需要JPA API,而不是JPA配置.
有没有办法实现这个目标?
使用prolog,我必须创建一个规则,在给定列表时,确定列表的第一个元素是否等于列表的最后一个元素.以下是我的想法.
The Base Cases:
1) If The Parameter Is Not A List: Return False
2) If The Parameter Is A List But Empty: Return False
3) If The Parameter Is A List But Has One Element: Return False
The Recursive Step:
Recursively Going Through The List Getting The
First Element And TheLast Element Then Compare
fela() :- false. <-- Base Case One
fela([]):-false. <-- Base Case Two
fela([H]):-false. <-- Base Case Three
fela([H|T]):- H1 is H, H1 == T, fela(T,H1). …Run Code Online (Sandbox Code Playgroud) 受到早期问题的启发,我试图实现一些能够枚举布尔表达式的可能性.但是,我在变量选择方面遇到了麻烦.这是我的预期结果:
?- eval(X^Y, R).
R = 0^0;
R = 0^1;
R = 1^0;
R = 1^1;
no.
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
:- op(200, yfx, ^).
split(V, R) :- var(V), R = 0.
split(V, R) :- var(V), R = 1.
split(X ^ Y, XP ^ YP) :- split(X, XP), split(Y, YP).
Run Code Online (Sandbox Code Playgroud)
即使对于这个简单的情况,这已经不能做我想要的了:
?- split(Y, R).
R = 0 ;
R = 1 ;
Y = _G269^_G270,
R = 0^0 ;
Y = _G269^_G270,
R = 0^1 ;
Y = _G269^ (_G275^_G276),
R …Run Code Online (Sandbox Code Playgroud) 在Prolog中,我如何制定一条规则来检查一个人的网络中有多少人,然后查询分离程度?
例如,如果在 Facebook 中我的名字是 John;我有一个朋友汤姆,汤姆有一个朋友露西,露西有一个朋友本,本有一个朋友乔什,乔什有一个朋友南希。
我想在 Prolog 中创建一条规则来测试我的网络中有多少人,并告诉 Prolog 返回达到给定分离度的名称。
例如,如果我查询类似的内容;
?- mynetwork(josh,2).
Run Code Online (Sandbox Code Playgroud)
Prolog 应该返回
或者
prolog ×5
c++ ×1
dcg ×1
ejb ×1
enumerator ×1
evaluation ×1
haskell ×1
hibernate ×1
iostream ×1
java-ee-6 ×1
jpa-2.0 ×1
list ×1
mybatis ×1
performance ×1
recursion ×1