Size: a a a

2020 March 26

LL

Lama Lover in ErlangRus
Sergey Yelin
Действительно, собралось с --enable-m64-build 🤔
Блин, это всё странно...
источник

D

DSSirota in ErlangRus
Сергей Иванов
бывает, возможна. уточни что именно не понятно
Не могу сказать, что что то не понятно, команда List5 = [List1 | List3] родилась дрогнувшей рукой. В обучающем материале шла речь о суммировании списков через ++, вот и решил поинтересоваться о возможности существования полученного мною результата. Спасибо :)
источник

ML

Maksim Lapshin in ErlangRus
DSSirota
Не могу сказать, что что то не понятно, команда List5 = [List1 | List3] родилась дрогнувшей рукой. В обучающем материале шла речь о суммировании списков через ++, вот и решил поинтересоваться о возможности существования полученного мною результата. Спасибо :)
легко возможно
источник

СИ

Сергей Иванов in ErlangRus
DSSirota
Не могу сказать, что что то не понятно, команда List5 = [List1 | List3] родилась дрогнувшей рукой. В обучающем материале шла речь о суммировании списков через ++, вот и решил поинтересоваться о возможности существования полученного мною результата. Спасибо :)
ну раз ты его получил - значит возможно )
источник

D

DSSirota in ErlangRus
Респект, товарищи!
источник

AB

Alex Bubnov in ErlangRus
DSSirota
Товарищи, прокомментируйте пожалуйста, имеем:
List1 = [1,2,3,4,5]
List3 = [0,1,2,3,4,5]
Ниже операция "суммирования" списков, с ней, вроде, все понятно:
List4 = (List1 ++ List3).
[1,2,3,4,5,0,1,2,3,4,5]
Голова = 1
Ниже, как я понимаю, команда "присоединения" головы List1 к хвосту List3
List5 = [List1 | List3].
[[1,2,3,4,5],0,1,2,3,4,5]
Голова = [1,2,3,4,5]
Вопрос, в реалии такое бывает, чтобы голова была отдельным списком (внутри списка), и возможна ли последующая работа с такой "головой"?
ну только ты учти, что lists:hd(List5) вернет List1 целиком.
для обычных списков это не самый распространенный паттерн, вложенные списки нужно либо прогонять через lists:flatten, либо просто специфически обрабатывать.
единственный кейс, когда lists:flatten вообще не нужен это iolist - список списков бинарей с произвольной вложенностью, его можно в файлы и сокеты писать как есть.
источник

AA

Anton Alferov in ErlangRus
Сергей Иванов
не вижу смысла. как и в указанном примере со сборкой erlang в докере —virtual лишняя сущность
почему лишняя?
источник

СИ

Сергей Иванов in ErlangRus
Anton Alferov
почему лишняя?
можно же наверно сделать аля 'apk install $deps' ...  'apk del $deps'  
объявив список зависимостей отдельно.  это я к тому. что данная фича в риведенном контексте вау эффекте не произвела
источник

AV

Andrey Velikiy in ErlangRus
DSSirota
Не могу сказать, что что то не понятно, команда List5 = [List1 | List3] родилась дрогнувшей рукой. В обучающем материале шла речь о суммировании списков через ++, вот и решил поинтересоваться о возможности существования полученного мною результата. Спасибо :)
это нормально, попадает же под спецификацию [term() | list()]
можно еще неправильный список создать "дрогнувшей рукой" [term() | atom()] например, такие списки не соответствуют OTP, но где-то кем-то использовались для внутренних нужд, библиотечные функции их не любят. будьте бдительны :)
источник

СИ

Сергей Иванов in ErlangRus
Andrey Velikiy
это нормально, попадает же под спецификацию [term() | list()]
можно еще неправильный список создать "дрогнувшей рукой" [term() | atom()] например, такие списки не соответствуют OTP, но где-то кем-то использовались для внутренних нужд, библиотечные функции их не любят. будьте бдительны :)
в чем неправильность этого списка? почему , какие функции и каким образом не любят?
источник

AV

Andrey Velikiy in ErlangRus
Сергей Иванов
в чем неправильность этого списка? почему , какие функции и каким образом не любят?
это мне экзамен? последний элемент не является пустым списком
источник

СИ

Сергей Иванов in ErlangRus
Andrey Velikiy
это мне экзамен? последний элемент не является пустым списком
не понимаю.  поясните, пожалуйста
источник

AV

Andrey Velikiy in ErlangRus
ну, если список создается как [a, b] nо фактически создается [a, b | [] ] или [a | [b | [] ] ] - у них у всех последним элементом является пустой список.
в случае же [a | b] последним элементом является атом
источник

СИ

Сергей Иванов in ErlangRus
Andrey Velikiy
ну, если список создается как [a, b] nо фактически создается [a, b | [] ] или [a | [b | [] ] ] - у них у всех последним элементом является пустой список.
в случае же [a | b] последним элементом является атом
а почему только атом?
источник

AV

Andrey Velikiy in ErlangRus
7> lists:sort([a|b]).
** exception error: no function clause matching lists:sort([a|b]) (lists.erl, line 479)
8> lists:sort([a,b]).
[a,b]
источник

AV

Andrey Velikiy in ErlangRus
атом как пример. любой терм, отличный от списка
источник

СИ

Сергей Иванов in ErlangRus
Andrey Velikiy
атом как пример. любой терм, отличный от списка
так понятней. спасибо
источник

AV

Andrey Velikiy in ErlangRus
не за что. я когда столкнулся с этим (не помню, где это использовалось) был весьма озадачен
источник

AV

Andrey Velikiy in ErlangRus
это легко объясняется представлением списка в памяти: каждый элемент это два указателя: на собственно терм элемента и на следующий элемент. последний элемент как конец списка имеет собственное специальное представление. по-моему, в external term format про это можно прочитать
источник

СИ

Сергей Иванов in ErlangRus
Andrey Velikiy
не за что. я когда столкнулся с этим (не помню, где это использовалось) был весьма озадачен
на соглашении о таком представлении списка построены алгоритмы в библиотеке
источник