Я хочу написать DRY erlang код, но у меня есть проблема. У меня такая запись
-record(person, {firstname, lastname, phones=[], emails=[]}).
И я использую ее для создания адресной книги, которая представляет собой простой список лиц. Тогда я хочу, чтобы вызвать функцию:
updatePersonsInfo(FName,LName,Phone, Email,[Old = #person{firstname = FName, lastname = LName} | T]) ->
UpdatedPhonesList = #person.phones ++ [Phone],
UpdatedEmailsList = #person.emails ++ [Email],
[Old#person{phones= UpdatedPhonesList, emails = UpdatedEmailsList}] ++ T;
И я хочу, чтобы вызвать эту функцию, но я хочу добавить только по электронной почте. Что-то вроде этого:
updatePersonsInfo(FName,LName, "",Email,Book);
Но я получаю сообщение об ошибке:
** exception error: bad argument
in operator ++/2
called as 4 ++ []
Так что я думаю, это просто вопрос ничего не добавляя списка. Конечно, я могу разделить эту функцию на: updatePersonsEmail и updatePersonsPhone, но логика этих двух функций будет такой же, что сделает мой код уродливым.
Любые идеи? Я пытался использовать нулевой атом, или _, или даже [], но ничего не работало.
Из уха! спасибо mate, извините, что беспокою вас с синтаксической ошибкой – NickyNick