목록에서 주어진 숫자의 발생을 계산하는 데 문제가 있습니다. 예를 들어 L = [4,5,6,4,3,4,2,4,5,6,7,4]
과 같은 목록이 있고 목록에 얼마나 많은 수의 4
이 있는지 계산하려면 응답은 5
입니다. 목록의 숫자 계산
gprolog
는 답변으로 만
no
나에게 보여줍니다
count_occ([], 0).
count_occ([H|T], L) :- count_occ(T, N), H =:= 4, L is N + 1.
내가 왜 모르겠어요.
H' 4. – Alexander
@Alexander이없는 경우'무슨 일에 대해 생각 : 당신은 단순히 재귀 호출을 수행 내가 변경된 - count_occ (T, N), (H = : 4, L은 N + 1), (H = \ 4, L은 N + 0) 성공했다. – mirx
이것은 H가 모두 4, ** 및 **가 4와 같지 않음을 의미합니다. 이는 분명히 모순입니다. 3 개의 술어가 필요하다고 생각합니다. 기본 술어는 H가 4 인 경우이고 다른 하나는 H가 아닌 경우입니다. 4 – Alexander