Erlang - возвращает количество элементов - PullRequest
0 голосов
/ 21 января 2019

Я нашел решение этой проблемы, но оно не работает должным образом.

введите описание ссылки здесь

Что не так? Я всегда получаю результат 0.

num([]) -> 0;
num(NUMS) ->
        num(NUMS, 0).

num([H|L], Count) when H < 1 ->  %% use of guard
        num(L, Count+1);
num([_|L], Count) ->
        num(L, Count);
num([], Count) ->
        Count.

Это пример использования введите описание изображения здесь

// Редактировать Я нашел, где проблема. Это правильный код.

num([]) -> 0;
num(NUMS) ->
        num(NUMS, 0).

num([H|L], Count) when H < 1 ->  %% use of guard
        num(L, Count+1);
num([_|L], Count) ->
        num(L, Count+1);
num([], Count) ->
        Count.

1 Ответ

0 голосов
/ 29 января 2019

Вам не нужен первый шаблон в функции num / 2:

num([_|L], Count) ->
        num(L, Count+1);
num([], Count) ->
        Count.

будет достаточно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...