_toHTML (options) {
      const parenthesis = (options && options.parenthesis) ? options.parenthesis : 'keep'
      const params = []
      for (let i = 0; i < this.params.length; i++) {
        params.push('<span class="math-symbol math-parameter">' +
                    escape(this.params[i]) + '</span>')
      }
      let expr = this.expr.toHTML(options)
      if (needParenthesis(this, parenthesis, options && options.implicit)) {
        expr = '<span class="math-parenthesis math-round-parenthesis">(</span>' +
          expr +
          '<span class="math-parenthesis math-round-parenthesis">)</span>'
      }
      return '<span class="math-function">' +
        escape(this.name) + '</span>' +
        '<span class="math-parenthesis math-round-parenthesis">(</span>' +
        params.join('<span class="math-separator">,</span>') +
        '<span class="math-parenthesis math-round-parenthesis">)</span>' +
        '<span class="math-operator math-assignment-operator ' +
        'math-variable-assignment-operator math-binary-operator">=</span>' +
        expr
    }
get HTML representation
@param {Object} options
@return {string} str