标签: anonymous-function

如何在javascript函数中处理匿名函数?

我需要在Javascript中存储一个作为我的"命名"函数的参数传递的匿名函数,然后再调用它.

我怎样才能做到这一点?我已经知道如何将匿名函数作为参数传递,但是当我在代码的"另一端"时,我不知道如何处理它.

谢谢

javascript anonymous-function

3
推荐指数
1
解决办法
192
查看次数

匿名函数可以有多个输出参数吗?

来自Mathworks

匿名函数由单个MATLAB表达式和任意数量的输入和输出参数组成.

我想知道一个匿名函数如何有多个输出参数?感谢致敬!

matlab anonymous-function

3
推荐指数
1
解决办法
333
查看次数

javascript匿名函数语法

以下两个区块有什么区别?

// block 1
{
    console.log("anonymous block");
}

// block 2
(function anon() {
    console.log("anonymous block 2");
})();
Run Code Online (Sandbox Code Playgroud)

我在Netbeans中运行它(使用node.js插件),它们似乎都工作...

javascript anonymous-function

3
推荐指数
1
解决办法
1771
查看次数

Matlab内联VS匿名函数

是否有充分的理由在MATLAB中使用内联函数与匿名函数之间进行选择?这里已经提出并回答这个确切的问题,但答案对新手MATLAB用户没有帮助,因为代码片段不完整,所以当粘贴到MATLAB命令窗口时它们不会运行.有人可以提供可以粘贴到MATLAB的代码片段的答案吗?

matlab anonymous-function inline-functions

3
推荐指数
1
解决办法
6261
查看次数

为什么编译器不能从使用中推断出这种类型的参数

这个问题是基于我的另一个SO问题的结果.我的新问题不是我如何让X工作的问题,而是为什么X不起作用.

我已经创建了一个简单的问题示例,但是如果你想看到我正在使用它的实际应用/情况,请查看我原来的问题(下面的函数实际上并没有做任何有用的事情).

T bar<T>(Func<T, bool> f) { return default(T); }
bool foo(int i) { return true; }
Run Code Online (Sandbox Code Playgroud)

现在我有3行代码可以按预期工作,并且所有目的都是明智的.

int num;
num = bar<int>(foo);
num = bar(new Func<int, bool>(foo));
num = bar((int i) => true );
Run Code Online (Sandbox Code Playgroud)

我的问题是:"为什么我需要明确指定Tbar第一个例子吗?" 我不知道这是因为编译器将前两个示例转换为相同的代码行.使用ILSpy我看到代码编译成这个.

num = Program.bar<int>(new Func<int, bool>(Program.foo));
num = Program.bar<int>(new Func<int, bool>(Program.foo));
num = Program.bar<int>((int i) => true);
Run Code Online (Sandbox Code Playgroud)

我不明白为什么编译器不能从我只有一个名为foo的函数来推断类型,并且它确实适合模板.现在,如果我创建了另一个函数,bool foo(bool i)我会理解,如果编译器抱怨存在一些歧义,并且它不知道我想要哪一个,并且我应该明确指定类型参数.

这当然只是我的懒惰,但它只是我期待的东西,当编译器没有恢复我的松弛时感到惊讶.

.net c# compiler-construction delegates anonymous-function

3
推荐指数
1
解决办法
274
查看次数

在MATLAB匿名函数中强制评估变量

MATLAB存储变量以及匿名函数.以下是文档中如何工作的示例.

表达式中的变量:

函数句柄不仅可以存储表达式,还可以存储表达式需要用于评估的变量.

例如,为需要系数a,b和c的匿名函数创建函数句柄.

a = 1.3;
b = .2;
c = 30;
parabola = @(x) a*x.^2 + b*x + c;
Run Code Online (Sandbox Code Playgroud)

因为a,b和c在您创建抛物线时可用,所以函数句柄包含这些值.即使清除变量,值仍会保留在函数句柄中:

clear a b c
x = 1;
y = parabola(x)
y =
   31.5000
Run Code Online (Sandbox Code Playgroud)

据推测,ab和c的值即使在保存并从mat文件重新加载时也与函数一起存储.在实践中,我发现这些值不会持久存在,尤其是在编辑最初创建函数的代码时.

有没有办法根据变量的数值定义函数句柄?我想要一些形式

>> a = 1.3;
>> b = .2;
>> c = 30;
>> parabola = @(x) a*x.^2 + b*x + c

parabola = @(x) a*x.^2+b*x+c

>> parabola2 = forceEval(parabola)

parabola2 = @(x) 1.3*x.^2+.2x+30
Run Code Online (Sandbox Code Playgroud)

编辑:也许我的问题是与文件关联,但当我编辑我最初定义匿名函数的文件时,我得到一个错误,看起来像:

无法在C:中找到函数@(ydata)nr /(na*dt)*normpdf(ydata,mu(j),s(j))./ normpdf(ydata,mu_a(j),s_a(j)). ..\mfilename.m.(我将mfile的名称更改为mfilename)

我对这类东西的通常解决方案是使用func2str()来删除文件依赖项,但这也会删除包含参数值的工作空间信息.所以我想强制所有参数在函数定义中采用它们的数值.

matlab anonymous-function function-handle

3
推荐指数
1
解决办法
598
查看次数

匿名函数导致问题

唯一给我带来问题的是执行匿名函数调用.我甚至打了个电话,看看里面的代码是否有问题; 事实并非如此.

这是我写的格式:

(function(){})(); 
Run Code Online (Sandbox Code Playgroud)

我很肯定这是正确和标准的使用,但它不断抛出这个 错误:

未捕获的TypeError :(中间值)(中间值)(...)不是函数(匿名函数)

在网站运行时可以在这里找到错误.

上面的代码摘录与我的程序中的代码没有什么不同

javascript anonymous-function

3
推荐指数
1
解决办法
2922
查看次数

为什么这个匿名方法在lambda的情况下不起作用?

我正在学习匿名方法,lambdas等,并且找不到它在这里不起作用的原因:

// this does not work
MyDictionary.Keys.Where(delegate(string s) { s.Length == 5; });

// this works
MyDictionary.Keys.Where(w => w.Length == 5);
Run Code Online (Sandbox Code Playgroud)

c# lambda anonymous-function

3
推荐指数
1
解决办法
116
查看次数

laravel内的未定义变量左连接

在我的情况下,我想显示每个用户完成的用户和订单,订单有状态我从输入表单获得$ status这里是我的代码

$orders = DB::table('user_profiles')
        ->leftJoin('orders', function($join){
            $join->on('user_profiles.id','=','orders.id_user')
                ->where('orders.status','=',$status);
        })
        ->selectRaw('user_profiles.*, count(orders.id_user) as order_try_count')
        ->groupBy('user_profiles.id')
        ->orderBy('order_try_count',$order)
        ->paginate(15);
Run Code Online (Sandbox Code Playgroud)

但我得到未定义的变量状态,我该怎么做才能解决这个问题?,谢谢

php anonymous-function laravel eloquent laravel-5

3
推荐指数
1
解决办法
1281
查看次数

如何使用匿名函数实现不同操作的矢量输入/输出?

假设我想创建一个执行以下操作的匿名函数

f: [a, b] -> [a^2, b/2]
Run Code Online (Sandbox Code Playgroud)

由于操作不同a,b我无法弄清楚如何操作.这在matlab中是否可行?我的函数会有约束R^2 -> R^2

matlab function anonymous-function

3
推荐指数
1
解决办法
117
查看次数