Trying to understand the solution to this problem but i have no idea what this symbol means &-> can someone help

```
# Say you have an array for which the ith element is the price of a given
# stock on day i. Design an algorithm to find the maximum profit. You may
# complete as many transactions as you like (ie, buy one and sell one share
# of the stock multiple times). However, you may not engage in multiple
# transactions at the same time (ie, you must sell the stock before you buy
# again).
def max_profit(prices)
prices.each_cons(2).map(&->(p1, p2){ [p2 - p1, 0].max }).reduce(0, &:+)
end
```