`arguments.callee` を使うなら以下でいいよね。

```javascript
(function() {
  // 処理
  setTimeout(arguments.callee, 100);
})();
```

で、あまり `arguments.callle` は使わないほうがよいようです。※1
こういう `setTimeout` を使う場合は、名前を付けてあげてそれを呼びだそう。

```javascript
function calculate() {
  // 処理
  setTimeout(calculate, 100);  // 以降連続で呼び出し実行する
}

setTimeout(calculate, 100);  // calculate の 1度目の呼び出し
```

そして、今回の問題としては、textarea には文字の入力後に `keyup` イベントが発生するので
これを `bind` して、`keyup` イベントが発生したら、何か行うという形にしたほうがよいでしょう。
setTimeout だと、特に何も起きていないのに処理が連続実行されて無駄になります。

```javascript
$textarea.on('keyup', calculate);
$textarea.on('change', calculate);  // change も bind しとくとよいです。

function calculate() {
  // $textarea に文字が入力された後、または、フォーカスが外れた後にここにきます。
}
```

※1 http://togetter.com/li/215907