Я прохожу курс программирования, и профессор просто слегка пробежался по Прологу из-за нехватки времени. В любом случае, он предложил исследовать это самостоятельно. Я наткнулся на криптарифметическую программу, которая должна вычислять? AM+PM = ДЕНЬ. Я не знаю, что должно быть добавлено в качестве входных данных в интерпретаторе SWI и что должно быть получено в качестве правильного вывода... Есть ли в этом смысл?
Я пытался...
solve([AM],[PM],[DAY]).
Это ничего не делает. Любая помощь в том, какой правильный ввод будет для AM + PM = DAY или что-то подобное, будет здорово! Вот программа, с которой я играл...
solve([A,M,P,D,Y]):-
select(A,[0,1,2,3,4,5,6,7,8,9],WA), % W means Without
not(A=0),
select(M,WA,WMA),
select(P,WMA,WMAP),
not(P=0),
select(D,WMAP,WMAPD),
not(D=0),
select(Y,WMAPD,WMAPDY),
DAY is 100*D+10*A+Y,
AM is 10*A+M,
PM is 10*P+M,
DAY is AM+PM.
Пожалуйста, имейте в виду, что у нас было только два класса по Прологу, так что я почти ничего не знаю!
Скотт
solve(X)
, это даст вам возможные результаты дляA
,M
,P
,D
иY
в списке длиной 5. - person Patrick J. S.   schedule 07.12.2014solve([A, M,P,D,Y]).
надеюсь, что это поможет. Было бы проще, если бы вы сказали то, чего не понимаете. Prolog дает вам одно решение проблемы, если вы нажмете ‹kbd›пробел‹/kbd›, вы получите другие. - person Patrick J. S.   schedule 07.12.2014