1
在GitHub上項目的「工作」,「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-'「?
你可能會發現這個值得看:https://github.com/esl/parse_trans/blob/master/src/exprecs.erl#L116 – 2012-03-02 11:44:00
這些只是「有趣」的功能名稱。在erlang中,函數名必須是* atom *,正如@Mille指出的那樣,如果通過用'''圍繞原子中的字符,則基本上可以在名稱中包含任何字符。所以'#is_record-''和'#info-''只是原子。它們與記錄或其他任何內容都沒有內在聯繫。 – rvirding 2012-03-02 20:07:49