# This is customized algorithm for "Calculation without Changing Nicknames of Evaluate's Input Every time You Change Variable's Key in the Function"

## Outline

The Evaluate is always useful.

However sometimes it’s very uncomfortable. This happens when the `Function` you enter into the component is very long and only a few of the `Variables` are selectively included in the `Function`.
In this case, you must update or enter(with clicking `+` button) the desired `Key(Name)` in every `Nickname` section of the Evaluate’s input. For example, `x` for `dim`, `y` for `off`, and so on.
If the number of `Variables` is very large, this process is very annoying. To make matters worse, if for some reason the `Key` of the `Variable` is changed, you need to find all theEvaluate associated with it and update the “Key(Name)” in the “Nickname” section. This is a more troublesome process.

So I wrote an algorithm that computed a `Function` using only `Variables` in the form `Variable (Key = Value)` without being affected by `Nickname` in the Evaluate.

## P.S

Since this algorithm is a prototype, I assume that all calculations of functions are made with `+, -, *, /` only. Therefore, more complex operators like `base ^ power, max (value 1, value 2)` do not work.

Each case in the variable is `Case sensitive`.

If there is a better solution without using `Python` or `C#` (with pure grasshopper components), i, please let me know.

If there is any error or bug, please let me know.

## Step 1

Enter `Splitters`, `Function` and `Variables`.

## Step 2

Split `function sentense` (1 item) based on the `Splitters`.

## Step 3

Separate each `Variables` (in form of function) to `Key` and `Value`.

## Step 4

In the splitted sentense, select the words included in the `Key` and replace with the `Value` corresponding to the `Key`.
Join all splitted words to become single sentence. (1 item)

## Step 5

Derive `Result Value` based on a function sentence whose `Key` is finally converted to `Value`.