The Erlang Standard Library

man Pages and Online Docs

Erlang has a lot of standard modules to help you do things which are directly callable from LFE. For example, the module io contains a lot of functions to help you perform various acts of formatted input/output. Depending upon your Erlang installation, you may have man pages available. From your operating system shell, you can found out by typing erl -man <module name> like so:

$ erl -man io

If you have man pages installed, that command would give output along these lines:

ERLANG MODULE DEFINITION                                    io(3)

MODULE
     io - Standard I/O Server Interface Functions

DESCRIPTION
     This module provides an  interface  to  standard  Erlang  IO
     servers. The output functions all return ok if they are suc-
     ...

If your installation of Erlang doesn't have man pages, you can always find what you're looking for on the documentation web site. Here is the online manpage for the io module.

Module and Function Tab-Completion in the REPL

From the LFE REPL, you have some other nice options for standard library discovery. Start up LFE to take a look:

$ ./bin/lfe
Erlang/OTP 17 [erts-6.3] [source] [64-bit] [smp:8:8] ...

>

Now, at the prompt, hit your <TAB> key. You should see something like this:

application               application_controller    application_master
beam_lib                  binary                    c
code                      code_server               edlin
edlin_expand              epp                       erl_distribution
erl_eval                  erl_parse                 erl_prim_loader
erl_scan                  erlang                    error_handler
error_logger              error_logger_tty_h        erts_internal
ets                       file                      file_io_server
file_server               filename                  gb_sets
gb_trees                  gen                       gen_event
gen_server                global                    global_group
group                     heart                     hipe_unified_loader
inet                      inet_config               inet_db
inet_parse                inet_udp                  init
io                        io_lib                    io_lib_format
kernel                    kernel_config             lfe_env
lfe_eval                  lfe_init                  lfe_io
lfe_shell                 lists                     net_kernel
orddict                   os                        otp_ring0
prim_eval                 prim_file                 prim_inet
prim_zip                  proc_lib                  proplists
ram_file                  rpc                       standard_error
supervisor                supervisor_bridge         sys
unicode                   user_drv                  user_sup
zlib

These are all the modules available to you by default in the LFE REPL. Now type (g and hit <TAB>:

> (g
gb_sets         gb_trees        gen             gen_event
gen_server      global          global_group    group

Let's keep going! Continue typing a full module, and then hit <TAB> again:

> (gb_trees:
add/2            add_element/2    balance/1        del_element/2
delete/2         delete_any/2     difference/2     empty/0
filter/2         fold/3           from_list/1      from_ordset/1
insert/2         intersection/1   intersection/2   is_disjoint/2
is_element/2     is_empty/1       is_member/2      is_set/1
is_subset/2      iterator/1       largest/1        module_info/0
module_info/1    new/0            next/1           singleton/1
size/1           smallest/1       subtract/2       take_largest/1
take_smallest/1  to_list/1        union/1          union/2

Now you can see all the functions that are available in the module you have selected. This is a great feature, allowing for easy use as well as exploration and discovery.