未知的erlang语法

时间:2012-03-02 11:19:38

标签: erlang

在github项目“jobs”的“jobs_info.erl”文件中,它包含以下代码:

pp(L) when is_list(L) ->
    [pp(X) || X <- L];
pp(X) ->
    case '#is_record-'(X) of %<=========What's meaning of '"#is_record-'?
    true ->
        RecName = element(1,X),
        {RecName, lists:zip(
            '#info-'(RecName,fields), %<=======what's meaning of ''#info-'?
            pp(tl(tuple_to_list(X))))};
    false ->
        if is_tuple(X) ->
            list_to_tuple(pp(tuple_to_list(X)));
           true ->
            X
        end
    end.

'#is_record-'''#info-'的表达是什么? “is_record”可能是指erlang:is_record? 但是什么是“'#info-'”?

1 个答案:

答案 0 :(得分:6)

正如凯末尔指出的那样,看看github.com/esl/parse_trans/blob/master/src/exprecs.erl#L116处的方法声明。

如果'混淆了你,请记住Erlang中的函数名是一个原子,而一个原子需要以小写字母开头,如果不是,它应该被{包围{1}}。查看docs了解详情。