Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
Arrow up icon
GO TO TOP
Elixir Cookbook

You're reading from   Elixir Cookbook Unleash the full power of programming in Elixir with over 60 incredibly effective recipes

Arrow left icon
Product type Paperback
Published in Feb 2015
Publisher Packt
ISBN-13 9781784397517
Length 236 pages
Edition 1st Edition
Languages
Arrow right icon
Author (1):
Arrow left icon
Paulo Pereira Paulo Pereira
Author Profile Icon Paulo Pereira
Paulo Pereira
Arrow right icon
View More author details
Toc

Table of Contents (16) Chapters Close

Elixir Cookbook
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
1. Command Line FREE CHAPTER 2. Data Types and Structures 3. Strings and Binaries 4. Modules and Functions 5. Processes and Nodes 6. OTP – Open Telecom Platform 7. Cowboy and Phoenix 8. Interactions Installation and Further Reading Index

Using module directives


To simplify working with modules, Elixir provides three directives: import, alias, and require. These three module directives are lexically scoped—if defined in the module scope, they are valid for the whole module, but if defined inside a function, they are only valid inside that function.

These three directives allow the use of code defined in other modules.

Getting ready

Create the require_me.ex file with the following content:

defmodule RequireMe do
  def foo do
    IO.puts "This is foo from #{__MODULE__} module"
  end
end

In the same folder, create the directives.ex file and add the following code:

defmodule Directives do
  @col  [1,2,3]
  @name "demo"

  # require directive

  # alias directive module scope
  alias String, as: S
  # import directive module scope
  import List, only: [first: 1]

  def test_module_alias do
    IO.puts "Name is #{S.capitalize(@name)}"
  end

  def test_function_alias do
    # alias directive function scope
    alias RequireMe, as: RM...
lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $15.99/month. Cancel anytime
Visually different images