【问题标题】:Erlang - Return Number Of ElementsErlang - 返回元素数
【发布时间】:2019-06-14 12:13:45
【问题描述】:

我找到了解决这个问题的方法,但它不能正常工作。

enter link description here

怎么了? 我总是得到结果 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.

这是一个使用enter image description here的例子

//编辑 我发现问题出在哪里。这是正确的代码。

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.

【问题讨论】:

  • 为什么要重建目前在 Erlang length([1,2,3,4]) 的核心库中的东西。

标签: erlang


【解决方案1】:

在 num/2 函数中不需要第一个模式:

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

足够了。

【讨论】:

    猜你喜欢
    • 2021-07-07
    • 2010-12-24
    • 1970-01-01
    • 1970-01-01
    • 2015-06-26
    • 1970-01-01
    • 2018-12-06
    • 2016-09-01
    相关资源
    最近更新 更多