小编Ste*_*anG的帖子

Erlang:嵌套案例

我对Erlang很新.我试图找出列表索引是否超出范围(在尝试之前)所以我想用类似的东西做一个if子句

if lists:flatlength(A) < DestinationIndex ....
Run Code Online (Sandbox Code Playgroud)

我发现那些功能结果不能用于防护,所以我使用了case.这导致嵌套的case语句

case Destination < 1 of
    true -> {ok,NumberOfJumps+1};
    false ->
    case lists:flatlength(A) < Destination of
        true -> 
            doSomething;
        false ->
            case lists:member(Destination,VisitedIndices) of
                true -> doSomething;
                false -> 
                    doSomethingElse
            end
    end
end.
Run Code Online (Sandbox Code Playgroud)

我发现这在可读性和代码风格方面很糟糕.这是你如何在erlang中做这样的事情,还是有更优雅的方式来做到这一点?

提前致谢

erlang if-statement case

5
推荐指数
1
解决办法
2385
查看次数

Erlang 数组与列表

我是 Erlang 新手,所以我正在编写一个示例程序,并努力决定是否应该使用数组或列表。两者都很容易创建和处理,但我没有得到:

  • 如何在不知道应附加项目的索引的情况下将项目附加到数组中。是array:set(array:size(A),"a",A)要走的路吗?
  • 如何确定某个元素是否是数组的成员,就像函数一样lists:member()。我是否必须迭代整个数组并检查每个元素?

最后,就性能而言,哪一个更好?

arrays erlang comparison performance list

5
推荐指数
1
解决办法
6082
查看次数

标签 统计

erlang ×2

arrays ×1

case ×1

comparison ×1

if-statement ×1

list ×1

performance ×1