1
、それは以下のコードが含まれていますunknow Erlangの構文
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 –
これはちょうど面白い関数名です。関数名は* atom *でなければならず、@Milleは原子の中の文字を '' 'で囲むことによって、基本的に名前に任意の文字を入れることができると指摘しています。したがって、 ''#is_record-''と ''info-''は単なる原子です。レコードやその他のものとの本質的な関係はありません。 – rvirding