Solve in Python:
Create a function that differentiates a polynomial for a given value of `x`.

Your function will receive 2 arguments: a polynomial as a string, and a point to evaluate the equation as an integer.

## Assumptions:

* There will be a coefficient near each `x`, unless the coefficient equals `1` or `-1`.
* There will be an exponent near each `x`, unless the exponent equals `0` or `1`.
* All exponents will be greater or equal to zero

## Examples:

```python
differenatiate("12x+2", 3)      ==>   returns 12
differenatiate("x^2+3x+2", 3)   ==>   returns 9
```
def parse_monom(monom):
    if 'x' not in monom: monom = monom + 'x^0'
    if monom.startswith('x'): monom = '1' + monom
    if monom.startswith('-x'): monom = '-1' + monom[1:]
    if monom.endswith('x'): monom = monom + '^1'
    coefficient, degree = map(int, monom.replace('x', '').split('^'))
    return degree, coefficient

def differentiate(equation, point):
    monoms = equation.replace('-', '+-').lstrip('+').split('+')
    polynom = dict(map(parse_monom, monoms))
    return sum(coefficient * degree * point ** (degree - 1)
               for degree, coefficient in polynom.items() if degree)