我正在尝试将以下JS教科书示例转换为Livescript:
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输出(来自第一个javascript片段):
cf = ->
result = new Array
i = 0
while i < 10
result[i] = (num) -> -> num
i
i++
result
console.log cf!.2!
这是不正确的。
如何在Livescript中编码javascript片段?
答案 0 :(得分:1)
cf = -> [0 to 9] |> map (i) -> -> i
cf!.2!
使用prelude-ls map
答案 1 :(得分:0)
实际上,console.log cf!.2!
或console.log cf![2]!
都可以在我的代码中使用。
我不喜欢使用命名函数。还有更好的方法吗?
此外,奇怪的是js2ls似乎偶然发现了转换。