2014-09-08 7 views
1

Я пытаюсь преобразовать следующий JS текст книги пример в LiveScript:Javascript для преобразования Livescript; вопрос с js2ls?

function cf(){ 
     var result = new Array(); 
     for (var i=0; i < 10; i++) { 
     result[i] = function(num){ 
      return function(){ 
      return num; 
      }; 
      }(i); 
     } 
     return result; 
    } 
    console.log(cf()[2]()); 

Моя попытка это:

cf = -> 
    res=[] 
    for i in [ 0 til 10 ] 
    f = (num) -> 
     -> 
     num 
    res[i] = f(i) 
    res 

console.log cf! . [3]! 

Однако LSC прерванной в последней строке.

Я попытался http://js2ls.org/public/, который обеспечивает эту LiveScript выход (из первого фрагмента яваскрипта):

cf = -> 
    result = new Array 
    i = 0 
    while i < 10 
    result[i] = (num) -> -> num 
    i 
    i++ 
    result 

console.log cf!.2! 

, которая не является правильным.

Как должен быть фрагмент javascript в Livescript?

ответ

0

Фактически либо код console.log cf!.2!, либо console.log cf![2]! работал бы в моем коде.

Мне не нравится использование именованной функции. Есть ли способ лучше?

Также интересно, что js2ls, похоже, наткнулся на преобразование.

1
cf = -> [0 to 9] |> map (i) -> -> i 
cf!.2! 

Использование прелюдией-LS карту