@Override
    public void update(final String name, final Function function) throws FunctionAlreadyExistsException,
            WrongFunctionNameException {
        if (!namePattern.matcher(name).matches()) {
            throw new WrongFunctionNameException(name);
        }
        if (builtinFunctions.containsKey(name)) {
            throw new FunctionAlreadyExistsException(name);
        }
        functions.put(name, function);
    }