2015-02-28 2 views
0

Я новичок Прологе, и у меня есть следующие функции длина:Пролог Длина эвенов в списке

mylen([H|Lc],N) :- mylen(Lc,M),N is M+1. 
 
mylen([],0).

Я хотел бы знать, если есть простой способ для запроса интерпретатор, чтобы вычислить длину списка эвенов в списке, а если нет, то как я буду увеличивать N только на четное число. Благодарю.

+1

Wow. [* Deja vu *] (http://stackoverflow.com/questions/28785391/just-started-on-prolog-please-show-me-how-to-counting-even-number-in-a-list). (См. Ссылку) – lurker

+1

Я проголосовал за то, чтобы закрыть как дубликат, после наблюдения @ lurker за глюк в матрице. –

ответ

1

Нечто похожее на это то, что вы могли бы искать

mylen([H|Lc],N) :- 
X is mod(H,2), 
X == 0, 
mylen(Lc,M), 
N is M+1. 

mylen([],0). 

mylen([H|Lc],N) :- 
mylen(Lc, M), 
N = M. 
+0

Запуск 'mylen ([1,2,3,4,5], N). Сколько решений оно дает? Все ли они правильные? Сколько их должно быть? – lurker

Смежные вопросы