39 lines
		
	
	
		
			680 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			680 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
---
 | 
						|
title: Functions
 | 
						|
---
 | 
						|
## Functions
 | 
						|
 | 
						|
### Syntax
 | 
						|
Functions in Elixir are defined using the def/2 macro:
 | 
						|
```elixir
 | 
						|
def name(param1, param2) do
 | 
						|
   # Do stuff
 | 
						|
end
 | 
						|
```
 | 
						|
 | 
						|
Private functions use the defp/2 macro:
 | 
						|
```elixir
 | 
						|
defp name(param1, param2) do
 | 
						|
  # Do stuff
 | 
						|
end
 | 
						|
```
 | 
						|
 | 
						|
### Returning
 | 
						|
Functions in Elixir do not use a return statement. Instead, they take the last expression (no matter how deeply nested in the function) and return that.
 | 
						|
```elixir
 | 
						|
def add(x, y) do
 | 
						|
  x + y
 | 
						|
end
 | 
						|
 | 
						|
def abs(x) do
 | 
						|
  if x < 0 do
 | 
						|
    -x
 | 
						|
   else
 | 
						|
    x
 | 
						|
   end
 | 
						|
end
 | 
						|
```
 | 
						|
 | 
						|
#### More Information:
 | 
						|
+ <a href="https://elixir-lang.org/getting-started/modules-and-functions.html">Official Module and Function Guide</a>
 |