prolog

    3热度

    2回答

    我刚刚在序言开始了,我希望能执行以下任务: 做谓语A(P,N,L)使得对所有C这是L,P(N,C)第n个元素。 基本上我想执行范围[0..N]的地图。 在Haskell,我最熟悉的语言,这看起来像 f p n = map(p)[0..n] (哈斯克尔不相当有谓语,所以我在这里采取了一些自由) 或pointfree f = (.enumFromTo 0).map 而且看起来我应该能够在Pro

    0热度

    2回答

    下面是我想出的代码。但是,这里有两个问题。 首先,只显示X的第一个值,即1。其次,如果Y为假,则不会跳回到菜单1。 希望能在这方面得到一些帮助。 time(office_hour,1). time(office_hour,2). menu1 :- write('Input time'),nl, read(Y),nl,time(Y,X),nl,write(X),nl,menu

    3热度

    1回答

    我正在计划SWI Prolog程序(语义自然语言分析程序),它具有庞大而动态的事实集(包含大约30,000个条目的词典)。是否有可能将这些事实存储在外部数据库中。由于其他要求,我正在考虑将Apache TinkerPop/JanusGraph/Cassandra作为我的数据库,但我也可以对支持的SQL/JDBC/ODBC数据库感到满意。

    0热度

    1回答

    我想在prolog中创建列表列表的交集。 (矩阵,列表为单元格) 我只能处理这种情况,行数和列数相同(矩形)。这些列表是有序的,并且不包含任何重复的元素(它们是ord_sets)。 我该怎么做? 举例:(3行3列) A: [[[1,2],[3,2,1],[3,4,5]], [[1,2],[3,2,1],[3,4,5]], [[1,2],[3,2,1],[3,4,5]]] B: [[[1]

    0热度

    1回答

    我最近开始学习Prolog,并且对谓词和函数有疑问。我怎么能写一个函数,它会检查是否在谓词对象是另一个谓词例如: vertex(a). edge(l,k,-1). edge(k,l,4). edge(a,z,-2). checkEdges(edge(X,Y,_)) :- vertex(X),vertex(Y) P.S我怎样才能让此功能打印一条消息,如果元素不是顶点?

    3热度

    1回答

    我有以下代码: pick_even([], []). pick_even([_, H | T], [H | R]) :- pick_even(T, R). pick_even([_, H , _ | T], [H | R]) :- pick_even(T, R). 当运行查询,?- pick_even(L,[4,7]).,我想收到的输出: L = [_7650, 4,

    0热度

    1回答

    所以我得到了一个迷宫,我试图找出开放邻居的数量(相邻点具有字符'g'或' - ')。 openNeighbors(Maze,(R,C),Answer):- openCount(Maze,(R-1,C),Up), openCount(Maze,(R+1,C),Down), openCount(Maze,(R,C-1),Left), openCount(Maze,(R,C+1),Right),

    0热度

    1回答

    我有这个事实或数据库序言,看看教育是否相同或不足。例如高中< =高中是真的,高中< = phd也是如此,但是高中< =高中是错误的。 edu_less(high_school, bachelor). edu_less(bachelor, masters). edu_less(masters, phd). edu_lessOrEqual(X,X). edu_lessOrEqual(X, Y

    4热度

    2回答

    cancer():- pain(strong), mood(depressed), fever(mild), bowel(bloody), miscellaneous(giddy). diagnose():- nl, cancer()->write("has cancer"). 例如,狗(X)说,X是一只狗,但我的癌症陈

    0热度

    1回答

    这可能是一个简单/基本的问题,但我有麻烦抓住逻辑。 我想使用递归来计算列表的长度。 想象一下,对于这个问题有一个列表[a,b,c,d]。 我们有一个基本的子句和递归子句,如下所示。 基本条款总是处理最基本的问题,在这种情况下是一个空的列表。递归子句试图解决列表中大小为N-1的问题。 listLength([],0). listLength([Head|Tail], Count):-