标签: anonymous-function

从映射函数返回多个值

假设我有一个名为 trig 的函数,它返回两个输出:

function trig(x)
    return(sin(x), cos(x))
end
Run Code Online (Sandbox Code Playgroud)

如果我想评估多个值的三角函数,我可以使用 map 函数:

julia> out = map(trig, (0:(pi/12):(pi/2)))
Run Code Online (Sandbox Code Playgroud)

out 是一个 7 元素数组,每个元素中都有一个包含两个元素的元组:

julia> out
7-element Array{Tuple{Float64,Float64},1}:
(0.0,1.0)
(0.258819,0.965926)
(0.5,0.866025)
(0.707107,0.707107)
(0.866025,0.5)
(0.965926,0.258819)
(1.0,6.12323e-17)
Run Code Online (Sandbox Code Playgroud)

我的问题是:解开正弦和余弦的最佳方法是什么,以便我有两个数组,每个数组有 7 个元素?是否可以在不创建多余的元组数组的情况下广播三角函数,而是直接创建我真正感兴趣的两个数组?

目前,我再次调用 map 以便从 out 中提取值以填充我想要的数组,但我认为这不是执行此操作的最佳方法:

sines = map(x->x[1], out)
cosines = map(x->x[2], out)
Run Code Online (Sandbox Code Playgroud)

出于本问题的目的,假设 trig 是一个计算量大的函数。因此,请不要给我一个需要多次评估 trig 的答案。

arrays function anonymous-function julia

5
推荐指数
1
解决办法
1111
查看次数

JavaScript 专家:带有“{}”的块作用域和匿名函数都有助于垃圾收集吗?

在《你不知道的 JS:作用域和闭包》一书中,Kyle simpson 指出块作用域变量有助于垃圾回收,具体示例如下:

function process(data) {
// do something interesting
}

{
let someReallyBigData = {};
process(someReallyBigData);
}

var btn = document.getElementById("my_button");
btn.addEventListener("click", function click(evt) {
console.log("Clicked!");    
}, false);
Run Code Online (Sandbox Code Playgroud)

现在上面的示例应该有助于垃圾收集,因为someReallyBigData一旦块结束,变量就会从内存中删除,与此示例不同,它对垃圾收集没有帮助:

function process(data) {
// do something interesting
}

var someReallyBigData = {};

process(someReallyBigData);

var btn = document.getElementById("my_button");
btn.addEventListener("click", function click(evt) {
console.log("Clicked!");    
}, false);
Run Code Online (Sandbox Code Playgroud)

现在我确信这个人对他提供的例子(第一个)是正确的;var但是,我想知道如果我们使用匿名 IIFE(立即调用函数表达式)以及普通的而不是{}花括号和变量,是否一切都会相同let。让我把它变成一个例子:

function process(data) {
// do something interesting
}

(function(){
var someReallyBigData = {};
process(someReallyBigData);
}()); …
Run Code Online (Sandbox Code Playgroud)

javascript v8 spidermonkey anonymous-function ecmascript-6

5
推荐指数
1
解决办法
713
查看次数

如何将匿名函数传递给 dplyr summarise

我有一个简单的数据框,包含 3 列:namegoalactual。因为这是更大数据帧的简化,所以我想使用 dplyr 来计算每个人实现目标的次数。

df <- data.frame(name = c(rep('Fred', 3), rep('Sally', 4)),
                 goal = c(4,6,5,7,3,8,5), actual=c(4,5,5,3,3,6,4))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

结果应该是这样的:

在此输入图像描述

我应该能够传递类似于下面所示的匿名函数,但语法不太正确:

library(dplyr)
g <- group_by(df, name)
summ <- summarise(g, met_goal = sum((function(x,y) {
                                       if(x>y){return(0)}
                                       else{return(1)}
                                     })(goal, actual)
                                    )
                  )
Run Code Online (Sandbox Code Playgroud)

当我运行上面的代码时,我看到以下 3 个错误:

警告消息: 1:在 if (x == y) { 中:条件长度 > 1 并且仅使用第一个元素

r anonymous-function dplyr

5
推荐指数
1
解决办法
1789
查看次数

如何使用匿名函数正确调用D3.js中的其他函数

我试图使用匿名函数来调用其他两个函数,但无法真正使其工作。我关注了这个问题:Calling Two Functions on same click event with d3.js but still can't get it right。

期望的效果是我的条形图改变条形并同时改变颜色。这就是我正在尝试的:

我想调用的两个函数:

 function selectDataset(d) {
        let value = this.value;
        if (value == "total") {
            change(datasetTotal);
        } else if (value == "option1") {
            change(datasetOption1);
        } else if (value == "option2") {
            change(datasetOption2);
        }
    }

    function changeColor(d) {
         let value = this.value;
        if (value == "total") {
            d3.selectAll("rect")
                    .transition()
                    .duration(2000)
                    .style("fill", 'blue')
        } else if (value == "option1") {
            d3.selectAll("rect")
                    .transition()
                    .duration(2000)
                    .style("fill", 'red')
        } else …
Run Code Online (Sandbox Code Playgroud)

javascript anonymous-function d3.js

5
推荐指数
1
解决办法
1016
查看次数

MATLAB 中的匿名函数和函数句柄有什么区别?

我听说这两个术语,匿名函数函数句柄被用来指代类似f = @(x) x.^2MATLAB 中的东西。但后来我也听说这些术语含义不同。这两个术语有何不同?

matlab lambda function handle anonymous-function

5
推荐指数
1
解决办法
81
查看次数

在PHP 5.3之前关闭数组内的对象

我知道可以使用PHP 5.3(匿名函数)执行以下操作,但在较旧的PHP版本(5.3之前版本)中是否有类似的替代方法?

  $exampleArray = array(  
    'func' => function() {  
      echo 'this is an example';  
      }
Run Code Online (Sandbox Code Playgroud)

是否可以使用__call或首先将该函数作为(对象)进行类型转换?此外,我尝试通过给它起一个名字来使函数匿名,但这似乎不起作用.

php anonymous-function php-5.2

4
推荐指数
2
解决办法
2162
查看次数

不使用带有Jquery事件的匿名函数

在我的程序中,我有一个click事件,对许多按钮执行相同的操作,除了每个事件处理函数的一小部分中的类是不同的.现在,我只是使用匿名函数.附加到此事件的功能很长,我预计会有很多按钮(大约60个左右?).我可以复制并粘贴我有60次的当前工作函数,但这将使我的javascript文件变得庞大.

我想做的是在on()函数之外定义事件处理函数,所以我可以说$('#some_button').on('click', my_event_handler("my_arg") );
这将真正简化我的代码.

我做了一个js小提琴,它给出了我正在尝试做的一个非常小的例子:

http://jsfiddle.net/AsmmF/

唯一的问题是,我无法让它发挥作用!

我要去看泰德,当我回来时,试试你的解决方案.

非常感谢您为我提供的任何帮助!

javascript jquery click anonymous-function

4
推荐指数
1
解决办法
3576
查看次数

在匿名函数中加载谷歌地图

我试图在匿名函数中加载谷歌地图,但每当我尝试使用其中一种api的方法时,我都会收到javascript错误.例如:

var mapOptions = {
      zoom: 8,
      center: new google.maps.LatLng(-34.397, 150.644),
      mapTypeId: google.maps.MapTypeId.ROADMAP
};
Run Code Online (Sandbox Code Playgroud)

错误

TypeError: google.maps.LatLng is not a constructor
Run Code Online (Sandbox Code Playgroud)

我创建了两个例子:

1)这通过页面正文中的脚本标记加载谷歌地图js.这种方法有效,没有js错误. http://jsfiddle.net/malonso/hgPQk/1/

2)这将在匿名函数中加载google map js w /.此方法不起作用,并包含上面提到的js错误.http://jsfiddle.net/malonso/fZqqW/2/

我确信我错过了一些明显的东西,但我根本无法弄清楚是什么.提前致谢.

更新:我应该指出,要求在匿名函数中加载谷歌地图.

javascript anonymous-function google-maps-api-3

4
推荐指数
1
解决办法
6437
查看次数

无法找到包含在匿名函数中的递归函数调用

注意:这主要是理论实践.

function one() {
    return [1, function() { one(); }];
}
console.log((one()[1])());
Run Code Online (Sandbox Code Playgroud)

输出给出undefined.为什么?

javascript recursion anonymous-function

4
推荐指数
1
解决办法
60
查看次数

为什么在JavaScript中调用命名的已分配函数失败?

以下可能有点无意义,但为什么下面的第一个调用工作而第二个调用失败?

var foo = function bar() {
  console.log("Martini");
}

foo(); // works
bar(); // undefined; i.e. "Uncaught ReferenceError: bar is not defined"
Run Code Online (Sandbox Code Playgroud)

那与范围有关吗?

推论初学者的问题:函数定义"解析" - 但实际上是有效的语法 - 并且是否存在命名指定的匿名函数有意义的任何上下文?

javascript scope function anonymous-function

4
推荐指数
1
解决办法
54
查看次数