http://www.erlang.org/news/35 wspomniał, że będzie to udokumentowane, ale nie mogę go znaleźć w dokumentacji.Co to jest moduł krotki w Erlangu?
10
A
Odpowiedz
13
"Moduł krotki" to krotka z dwoma elementami, nazwą modułu i listą dodatkowych argumentów. Na przykład:
{my_module, [foo, bar]}
Tej krotki można użyć zamiast nazwy modułu w wywołaniach funkcji. W tym przypadku funkcja miano dostanie krotki w pytaniu jako dodatkowy argument na końcu listy argumentów:
3> Module = {lists, [[foo]]}.
{lists,[[foo]]}
4> Module:append([bar]).
[bar|{lists,[[foo]]}]
To wywołanie jest równoważne:
7> lists:append([bar], {lists, [[foo]]}).
[bar|{lists,[[foo]]}]
moduły krotki są przechowywane ze względu na kompatybilność wsteczną, ponieważ były mechanizmem implementacji dla parameterised modules, które zostały usunięte z języka w R16.
hum, spodziewałem się [foo, bar] jako wyniku końcowego – Isac
Ja też, a więc mój wybór funkcji do testowania :) – legoscia
Uwaga na przykład! Biblioteka standardowa nie nadaje się do tego wywołania, ponieważ ostatni argument wymienia całą krotkę z kwalifikacją modułu, która nie oczekuje modułów std jako "list" itd. Argumenty nie są wyodrębniane dla kompilatora pod uwagę. Może to być przydatne w przypadku nowych modułów takich jak to: https://github.com/comtihon/mongodb-erlang. – DenisKolodin