prolog

    1热度

    1回答

    我在使用SWI-Prolog中的round/1和floor/1内置插件时遇到问题。在我的代码中使用它们时,它们无法识别,并在提交它们作为查询时;例如?- round(1.6).,Prolog会告诉我该程序不被识别。难道我做错了什么?我在线上Swish版本和我自己的Windows安装版本上都试过了,但是在两者上都得到相同的错误。

    2热度

    1回答

    我正在做这个练习,为此我必须编写一个谓词randomnames/1用于生成三个名称的随机列表(不允许重复)。我有一个在它10名的数据库,已经和他们都对应一个数字,例如:name(1, Mary). 我写了一个谓语生成一个随机名称: randomname(Name) :- random(0, 11, N), % generate random integer between 1 and 1

    1热度

    2回答

    我有这样的断言: check_matrix([[_, E2, E3], [E4, E5, E6], [E7, E8, E9]]) :- E5 = E9, is_valid([E4, E5, E6]), is_valid([E7, E8, R9]), is_valid([E2, E5, E8]), is_valid([E3

    1热度

    1回答

    我有一个文件“linguagens.pl”的语言,其中的代码是这样的: linguagem('Flow-matic',1957). linguagem('Fortran I',1957). linguagem('Fortran II',1958). linguagem('Algol 58',1958). linguagem('Lisp',1959). predecessora('COB

    1热度

    1回答

    我想删除列表中每个列表的第一个元素。 例如,要列出[[1,2],[3,4]],我应该返回[[2],[4]]。 在大多数情况下,下面这段代码将正常工作: remove_firstElem([],[]). remove_firstElem([[_H|T]|Ls],[T|L]) :- remove_firstElem(Ls,L). 但对于像[[1],[2],我想列出它返回[]而不是[[]

    1热度

    1回答

    我需要构造一个谓词compare_to_predicate/3。它接受一个给定的谓词和数字列表,并使用该谓词比较列表中的每个元素。 给定的谓词是 - is_odd - is_even - GREATER_THAN(X) 例如: ?- compare_to_predicate([8,13,1,500], [is_odd], X). X = [13, 1]. ?- compare_to_predi

    1热度

    1回答

    所以,我在找的是基本上是这样的: findatom(A, L, NL), with inputs: A = -, %sought after atom L = [[1,2,3], [2,-,3], [1,2,3]] %list of lists and then it outputs: NL = [2,-,3] %the first list containing the sought

    0热度

    1回答

    我是新来的Prolog,我需要一些帮助:d 我学到递归,我知道如何使用它(或多或少)。 我有图表的麻烦。我试图解决背包问题,所以我在一步一步迈出。 我的问题: 我有一个类型列表,我想使长度为n(= 3)的所有子列表,并选择最大的值。我想我需要一个函数将类型列表的头部拉出来,并将它传递给另一个递归调用“儿子”的函数。我的想法是这样的: append([],L2,L2):- !. append([T

    2热度

    2回答

    我有序言谓词male, female, parent,如下所示:现在 parent(bob, rick). parent(jane, rick). parent(rick, alice). parent(betsy, alice). male(rick). female(jane). ,一种方式来推断残缺的性别信息是看如果父母一方是男性,那么其他的必须是女性,副反之亦然,所以我试图延

    0热度

    1回答

    我有一个6x6数字的矩阵,我正在编写一个序言代码,它给出了特定行,列或方块中的数字。例如: 0n 1n 2n 3n 4n 5n 0n [[1,2,3,4,5,6] 1n [2,3,4,5,6,1] 2n [3,4,5,6,1,2] 3n [4,5,6,1,2,3] 4n [5,6,1,2,3,4] 5n [6,1,2,3,4,5]] 我已经有行和列的代码,这是一样的东西: row(