TIL IEX Console #2
Tags: elixir, todayilearned
Published: 2022-05-12 09:05:31

Quick learn for today, when you need to check the public functions from a specific module use the helper `exports/1`, here an example:

```elixir
iex(1)> exports Enum
all?/1                all?/2                any?/1                any?/2
at/2                  at/3                  chunk/2               chunk/3
chunk/4               chunk_by/2            chunk_every/2         chunk_every/3
chunk_every/4         chunk_while/4         concat/1              concat/2
count/1               count/2               count_until/2         count_until/3
dedup/1               dedup_by/2            drop/2                drop_every/2
drop_while/2          each/2                empty?/1              fetch/2
fetch!/2              filter/2              filter_map/3          find/2
find/3                find_index/2          find_value/2          find_value/3
flat_map/2            flat_map_reduce/3     frequencies/1         frequencies_by/2
group_by/2            group_by/3            intersperse/2         into/2
into/3                join/1                join/2                map/2
map_every/3           map_intersperse/3     map_join/2            map_join/3
map_reduce/3          max/1                 max/2                 max/3
max_by/2              max_by/3              max_by/4              member?/2
min/1                 min/2                 min/3                 min_by/2
min_by/3              min_by/4              min_max/1             min_max/2
min_max_by/2          min_max_by/3          min_max_by/4          partition/2
product/1             random/1              reduce/2              reduce/3
reduce_while/3        reject/2              reverse/1             reverse/2
reverse_slice/3       scan/2                scan/3                shuffle/1
slice/2               slice/3               slide/3               sort/1
sort/2                sort_by/2             sort_by/3             split/2
split_while/2         split_with/2          sum/1                 take/2
take_every/2          take_random/2         take_while/2          to_list/1
uniq/1                uniq/2                uniq_by/2             unzip/1
with_index/1          with_index/2          zip/1                 zip/2
zip_reduce/3          zip_reduce/4          zip_with/2            zip_with/3
```

Also works with Erlang modules:

```elixir
iex(2)> exports :io
nl/1                  columns/0             columns/1             rows/1
get_chars/2           get_chars/3           get_password/0        get_password/1
setopts/1             write/1               write/2               read/1
read/2                read/4                fwrite/1              fwrite/3
fread/2               fread/3               scan_erl_exprs/1      scan_erl_exprs/2
scan_erl_exprs/3      scan_erl_exprs/4      scan_erl_form/1       scan_erl_form/2
scan_erl_form/4       parse_erl_exprs/1     parse_erl_exprs/2     parse_erl_exprs/4
parse_erl_form/1      parse_erl_form/2      parse_erl_form/3      parse_erl_form/4
request/1             requests/1            requests/2            scan_erl_form/3
fwrite/2              getopts/1             nl/0                  rows/0
put_chars/2           setopts/2             get_line/2            parse_erl_exprs/3
read/3                request/2             getopts/0             get_line/1
put_chars/1           format/1              format/2              format/3
printable_range/0
```