Question: Is it possible to have multiple outputs from a single function?

For example:

```
In[1]:= x+1
        x+2
Out[1]= 1+x
Out[2]= 2+x

```

has multiple outputs, how can I acheive that in a function?

I tried

```
In[3]:= f[x_]:=Module[{},
x+1
x+2
]
In[4]:= f[2]
Out[4]= 6

```

which doesn't work.

Answer: 
I have found this solution:

```
In[1]:= f[x_] := CellPrint[{
                    Cell[BoxData[ToBoxes[x + 1]], "Output"],
                    Cell[BoxData[ToBoxes[x + 2]], "Output"]}]

In[2]:= f[2]

```

> 
> 3  
> 
>  4
> 
> 
> 

I was originally trying to achieve something like this:

```
f[data_] :=
  CellPrint[{
    Cell["Data", "Subsection"],
    Cell[BoxData[ToBoxes[ListLinePlot[data]]], "Output"],
    Cell["Fourier transform", "Subsection"],
    Cell[BoxData[ToBoxes[ListLinePlot[Abs[Fourier[data]]^2]]], "Output"]
    }]

```

which will generate two subsections

```
f[RandomReal[1, 200]]

```

![enter image description here](https://i.stack.imgur.com/RwxXF.png)
May be you are looking for :

`f[x_] := CellPrint /@ (ExpressionCell[#, "Output"] & /@ {x + 1 , 
 x + 2});` ?

`ExpressionCell[...]` replaces the complicated structure `Cell[BoxData[ToBoxes[...]]]`