Prolog - 人工智能(列表,行)

时间:2016-05-14 14:12:19

标签: prolog

我正在尝试这种新型编程,Prolog。

我想用等式line(A,B,C)定义一行Ax + By + C = 0,我想定义多行(它应该有类型:multitudine_lines(ListOfLines)`):

multitude_lines([line(2,3,4),line(1,2,3),line(2,6,7)]).

我定义了一行,但我不知道如何定义multitude_lines。

我需要一些帮助...

1 个答案:

答案 0 :(得分:0)

如果我正确理解了您的问题,multitude_lines应该将“线”列表转换为方程式列表。该程序将每一行转换为一个方程:

:- initialization(main).
:- set_prolog_flag(double_quotes, chars). 

main :- multitude_lines([line(2,3,4),line(1,2,3),line(2,6,7)],Output),writeln(Output).

multitude_lines([],[]).
multitude_lines([line(A,B,C)|D],[(A*x + B*y + C = 0)|D1]) :-
    multitude_lines(D,D1).

此程序将打印[2*x+3*y+4=0,1*x+2*y+3=0,2*x+6*y+7=0]