小编use*_*190的帖子

如何阅读prolog中的谓词

在学习命题逻辑和谓词逻辑后,我转向Prolog.

我想知道是否有人可以为我澄清语法,因为我无法阅读它.

我可以轻松地阅读下面的内容.所以它说

如果X是Y的子,则X是Y的下降.

然后它继续说

如果X是Z的子节点并且Z是Y的下降,则X是Y的下降.

descend(X,Y) :-
   child(X,Y).
descend(X,Y) :-
   child(X,Z),
   descend(Z,Y).
Run Code Online (Sandbox Code Playgroud)

但是一旦我开始研究列表编程,我就很难阅读谓词的语法.例如下面的内容

remove([], _, []).
remove([X | Xs], X, Ys) :- remove(Xs, X, Ys).
remove([Y | Xs], X, [Y | Ys]) :- X \== Y, remove(Xs, X, Ys).
Run Code Online (Sandbox Code Playgroud)

从测试开始,它会删除第二个项目,例如,如果我输入

remove([a,b,c], b, Ys).
Run Code Online (Sandbox Code Playgroud)

我会的 Ys = [a,c].

但我不知道如何阅读语法,如果有人可以为我分解,那就太好了.

logic prolog

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

从 Java DSL 可视化 Camel 路由

有没有办法从 Java DSL 可视化 Camel 路由?如果是这样,最好的方法是什么?如果没有,是否有任何解决方法可以从 Java DSL 可视化 Camel 路由?

java apache-camel

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

Go build:构建输出“api”已经存在并且是一个目录

我正在尝试使用 CompileDaemon 来使用 Docker 热重载 go 项目。

我的文件夹结构如下所示

my-api
 - server
   - main.go
 - Dockerfile
 - docker-compose.yml
 - Makefile
Run Code Online (Sandbox Code Playgroud)

这是我收到的错误:

go build github.com/firstApi/test-platform/lib/my-api/server: build output "server" already exists and is a directory

这就是我的 dockerfile 的样子

FROM golang:1.12-stretch

ENV GO111MODULE=on
WORKDIR /go/src

COPY go.mod .
COPY go.sum .
RUN go mod download

COPY . .

RUN ["go", "get", "github.com/githubnemo/CompileDaemon"]

RUN go test ./... \
&& CGO_ENABLED=0 go build -v -a -installsuffix cgo -o /main server/main.go

ENTRYPOINT CompileDaemon -log-prefix=false -build="go build ./server" …
Run Code Online (Sandbox Code Playgroud)

go docker dockerfile

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

Java中是否存在可以容纳4个或更多值的数据结构

Java中是否有一个可以容纳4个以上值的数据结构?

所以有些东西

Map<String, String, String, String>;
Run Code Online (Sandbox Code Playgroud)

这需要能够减少if else语句的数量.我希望能够做到以下几点.

检查数据结构是否包含与某个值匹配的元素,如果是,则将链接(字符串)分配给变量,然后将代码和消息添加到与该链接相关的另一个变量.

如果不是有一个很好的锻炼来实现这一目标?

java arraylist hashmap data-structures

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

Java 8流获取无法在原始类型void上调用map

我正在玩Java 8中的流和lambdas,因为我之前从未使用它们并试图转换20到19的所有人的年龄并打印出他们的名字,但是我得到以下错误

Cannot invoke map(Person::getName) on the primitive type void
Run Code Online (Sandbox Code Playgroud)

这是我的代码

            System.out.println(
                people.stream()
                .filter(person -> person.getAge() == 20)
                .forEach(person -> person.setAge(19))
                .map(Person::getName)); 
Run Code Online (Sandbox Code Playgroud)

如果有人能告诉我为什么会这样,或者让我知道如何改进或修改此代码,我们将不胜感激.

java lambda java-8 java-stream

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

如何在Java 8中使用过滤器来忽略int数组和集合中的值

我有一个errorCodes列表,我想检查它们是否包含单独数组中的错误代码.如果列表errorCode中存在错误代码,那么我想过滤掉那些错误代码.

这就是我到目前为止所拥有的

int[] ignoredErrorCodes = {400, 500};

  List<Error> errorCodes = errorsList.stream()
            .filter(error -> error.getErrorCode() != ignoredErrorCodes[0])
            .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

如何使用流检查数组ignoredErrorCodes中的所有值而不是一个?

java arrays java-8 java-stream

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