Do not use return, break, exit or continue

Return, break, exit, continue and throw are implemented using C++ exception.

C++ exceptions are SLOW!

TEST CASES:

``` fn test1a v = (if v == true do return 1; 0) fn test1b v = (if v == true then 1 else 0)

```

FOR 100,000 ITERATIONS:

``` test1a true -- 15890 msec. test1a false -- 78 msec. test1b true -- 47 msec. test1b false -- 62 msec.

```

TEST CASES:

``` fn test2a = ( local res for i = 1 to 1000 do if i == 10 do (res = i; break;) res )

fn test2b = ( local notfound = true, res for i = 1 to 1000 while notfound do if i == 10 do (res = i; notfound = false;) res )

```

FOR 100,000 ITERATIONS:

``` test2a() -- 84265 msec. test2b() -- 1359 msec.

```

Previous Tip

matchPattern is faster than findString

Next Tip

Use StringStream to build large strings