Clause
← Уся документація

Перекладено з англійського оригіналу · 06042fa · 2026-10-09 · Читати англійською

Модулі бібліотеки

План 11, крок 39 (2026-10-07): власна підмножина проєкту з модулів OTP lists і maps, написана на Erlang за документованою поведінкою OTP (не скопійована з вихідних кодів OTP) і скомпільована разом із програмами, що її використовують.

Вміст

МодульФункції
listsappend/1,2, filter/2, foldl/3, foldr/3, keyfind/3, map/2, member/2, nth/2, reverse/1,2, seq/2,3, sort/1
mapsfind/2, fold/3, from_list/1, get/2, keys/1, put/3, to_list/1, values/1
fileopen/2, read/2, write/2, read_line/1, position/2, close/1, read_file/1, write_file/2, delete/1, rename/2, list_dir/1, make_dir/1, del_dir/1 поверх файлового драйвера (файли)
ioget_line/1,2, get_chars/2,3 (сервер стандартного вводу або відкритий файл); format/1,2 і put_chars/1 є вбудованими функціями runtime
gen_tcplisten/2, accept/1,2, connect/3,4, send/2, recv/2,3, shutdown/2, controlling_process/2, close/1 поверх портів-сокетів (сокети)
gen_udpopen/1,2, send/4, recv/2,3, controlling_process/2, close/1
inetport/1, sockname/1, peername/1, setopts/2, close/1
clause_socketВласний модуль Clause: протокол драйвера сокетів, спільний для трьох модулів вище
oscmd/1 через порт (підпроцеси); type/0 і getenv/1 є вбудованими функціями runtime

Результати й причини помилок збігаються з OTP 29, включно з формою помилок реалізацій OTP на Erlang (lists:map(F, x) дає {case_clause, x}, lists:nth(0, L) — function_clause, lists:seq(1, 10, 0) — badarg) і його BIF (lists:member/2, lists:keyfind/3, lists:reverse/2, функції maps: badarg, {badmap, M}, {badkey, K}). lists:member/2 порівнює через =:=, lists:keyfind/3 — через ==. lists:sort/1 — це стабільне сортування злиттям. Трасування стека називають функції бібліотеки, а не OTP.

Як програми їх отримують