1

小さなスクリプトを coco から LiveScript に移行しています。

D = (obj, l = 20) ->
  if (l > 0)
    new
      @[k] = (try D(v, l - 1) catch (e) e) for k, v in obj
  else
    obj

次のコードは、coco では有効ですが、LiveScript ではコンパイルできません。

4 行目の解析エラー: 予期しない 'FOR'

そのコードを次のように変更しようとしていました(LiveScriptの場合):

D = (obj, l = 20) ->
  if (l > 0)
    new
      for k, v of obj
        @[k] = (try D(v, l - 1) catch (e) e)
  else
    obj

しかし、それでもコンパイルされません:

5 行目の割り当てが無効です

この coco スクリプトを LiveScript に書き直す方法は? (単純な JavaScript の方法ではありません -- 一時変数を使用しません。)

4

1 に答える 1