无法弄清楚Erlang函数未定义的原因

时间:2015-01-28 14:03:22

标签: erlang erlang-shell

我有一个功能,一直给我“功能代码/ 3未定义”错误。以下是该函数的代码:

table(Sample)->
Freq=freq(Sample),
Tree = huffman(lists:keysort(2, Freq)),
codes(Tree).

codes(Tree)->
    {_,_,X,_}=Tree, <---- Masks out a tuple
    {Y,_,_,_}=Tree, <----- Masks out an atom
    codes(X,Y,[]). <------ Here is where it gives error.

codes({},_,List)->List;
codes(Entry,Type,List)->
    case Type of
        leaf->
            NewList=[element(3,Entry)|List];
        node->
            Entry1=element(2,Entry),
            Entry2=element(2,Entry),
            codes(Entry1,element(1,Entry1),List),
            codes(Entry2,element(1,Entry2),List);
    end.

无法弄清楚为什么,有人知道吗?

编辑:问题在;end而不是.,现在已修复。

1 个答案:

答案 0 :(得分:1)

即使其他人解决了这个问题,下面是erlang

的结构
case Expr of
    Pattern1 [when GuardSeq1] ->
        Body1;
        ...;
    PatternN [when GuardSeqN] ->
        BodyN
end