标签: anonymous-function

匿名与非匿名函数Lua

我正在学习Lua,并且遇到了匿名函数的概念.这很有趣,但我想知道它提供了什么额外的优势,而非匿名功能.

所以,如果我有类似的东西

function(a,b) return (a+b) end
Run Code Online (Sandbox Code Playgroud)

该功能是匿名的,如果我有

function add(a,b) return (a+b) end
Run Code Online (Sandbox Code Playgroud)

该功能不是匿名的.第二个更好,因为我可以在任何我想要的地方调用它,我也知道我的功能在做什么.那么匿名函数的优势是什么?我在这里错过了什么吗?

lua functional-programming function anonymous-function

7
推荐指数
2
解决办法
5700
查看次数

与Java内部类相比,Scala闭包 - >最终VS var

我首先问过这个关于final在Java 中使用匿名内部类的问题: 为什么我们使用带有匿名内部类的final关键字?

我实际上正在阅读马丁奥德斯基的Scala书.似乎Scala简化了很多Java代码,但对于Scala闭包,我注意到了一个显着的差异.

在Java中,我们使用匿名内部类"模拟"闭包,捕获最终变量(将被复制到堆上而不是堆栈中),在Scala中我们可以创建一个可以捕获val的闭包,但是也是一个var,因此在闭包调用中更新它!

所以我们可以使用没有final关键字的Java匿名内部类!我还没读完这本书,但是现在我没有找到关于这种语言设计选择的足够信息.

谁能告诉我,为什么马丁Odersky的,谁似乎真的照顾功能的副作用,选择关闭,以便能够同时捕捉valvar,而不是唯一的val

Java和Scala实现的优点和缺点是什么?

谢谢

相关问题: 使用Scala闭包,何时捕获的变量开始存在于JVM堆上?

java closures scala anonymous-function inner-classes

7
推荐指数
1
解决办法
1225
查看次数

在Matlab中的匿名函数中使用for/while循环

我发现匿名函数非常有用,但很多时候我需要使用循环才能使函数正常工作.例如:

while val<tolerance
     .....
end
Run Code Online (Sandbox Code Playgroud)

我知道我可以将函数保存在一个单独的文件中,有时我可以对代码进行矢量化,然后匿名函数可以工作,但在某些情况下很难找到for循环的替代方法.

Matlab文档没有讨论它或说它是不可能的.有任何想法吗?

matlab loops anonymous-function

7
推荐指数
1
解决办法
3841
查看次数

JavaScript匿名函数表达式与IIFE

遇到一些在表达式中使用IIFE而不仅仅是普通函数的代码.

var custom_type = (function() {
    return $('#myDiv').attr('custom_type');
})();
Run Code Online (Sandbox Code Playgroud)

通常我会写这样的东西:

var custom_type = function() {
    return $('#myDiv').attr('custom_type');
};
Run Code Online (Sandbox Code Playgroud)

IIFE的原因是什么?我唯一能想到的是,IIFE可能custom_type只在开始时分配变量一次,而第二次可能会在每次引用变量时继续检查更新的类型.

javascript anonymous-function function-expression iife

7
推荐指数
1
解决办法
2073
查看次数

在Scala中,你能否使一个匿名函数有一个默认参数?

这有效:
scala> def test(name: String = "joe"): Boolean = true
test: (name: String)Boolean

我希望这可以以同样的方式工作:
scala> val test: String => Boolean = { (name: String = "joe") => true } <console>:1: error: ')' expected but '=' found.

scala anonymous-function

7
推荐指数
2
解决办法
2904
查看次数

Matlab中的多行匿名函数?

是否可以在 Matlab 中创建多行匿名函数?

文档中没有合适的例子,也没有直接否认。在网络讨论中,我发现了一些提问者的嘲笑,好像这是愚蠢的愿望。如今,当大多数语言引入具有多行功能的 lambda 表达式时,这看起来很奇怪。

matlab lambda anonymous-function

7
推荐指数
1
解决办法
5002
查看次数

如何使用mutate_each(和summarise_each)的匿名函数?

我们知道,可以在R中调用函数而不将它们分配给环境,例如

> (function(x){x/2})(5)
[1] 2.5
Run Code Online (Sandbox Code Playgroud)

我想在mutate_each(或summarise_each)调用中动态使用这些函数.例如,用

df <- data.frame(a = runif(10), b = rnorm(10))

我可能会尝试执行以下操作之一,但它们都会返回错误:

library(dplyr)

> df %>%
+     mutate_each(funs((function(x){x/2})), a, b)
Error in eval(substitute(expr), envir, enclos) : 
  Unsupported type CLOSXP for column "a"
> 
> df %>%
+     mutate_each(list((function(x){x/2})), a, b)
Error: is.fun_list(calls) is not TRUE
> 
> 
> df %>%
+     mutate_each(funs((function(x){x/2})(.)), a, b)
Error in vapply(dots[missing_names], function(x) make_name(x$expr), character(1)) : 
  values must be length 1,
 but FUN(X[[1]]) result is length 2
> …
Run Code Online (Sandbox Code Playgroud)

r anonymous-function dplyr

7
推荐指数
1
解决办法
1421
查看次数

如何在Android 6.0下使用Java 8 Stream API

只需使用带有Java 1.8和Android 7(API Level 24)的Android Studio 2.2.3设置一个项目,试图测试"新的"java 8功能Stream.

这是我的gradle文件:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    defaultConfig {
        applicationId "com.example.radinator.myproject"
        minSdkVersion 24
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:25.2.0'
    testCompile 'junit:junit:4.12'
}
Run Code Online (Sandbox Code Playgroud)

这里的代码:

import java.util.stream.*;
public class MainActivity extens Activity {

    @Override
    protected void onCreate(Bundle …
Run Code Online (Sandbox Code Playgroud)

java api android anonymous-function

7
推荐指数
1
解决办法
3168
查看次数

PHP:匿名函数可以返回吗?

在一些PHP测验中,我得到了以下任务 - 我必须进行return true以下操作:

function foo($x)
{
    return $x === $x();
}

foo(__________ALLOWED_INPUT____________);
Run Code Online (Sandbox Code Playgroud)

现在我的想法是传递一个自动返回的匿名函数:

foo(function() { return $this_function; })
Run Code Online (Sandbox Code Playgroud)

但是我还没有找到办法做到这一点.有可能吗?

PS:很棒的游戏(https://returntrue.win/?level=6).

php lambda return anonymous-function

7
推荐指数
1
解决办法
255
查看次数

如何在 Nuxt 3 服务器/api 中传递参数?

我不知道如何将参数传递给 Nuxt 3 中的匿名函数。

index.vue:

<template>
  <form @submit.prevent="signUpNewsletter()">
    <input type="email" placeholder="example@x.com" v-model="userEmail">
    <input type="submit" value="Submit">
  </form>
</template>

<script setup>
const userEmail = ref('x@x.de')

function signUpNewsletter () {
  useAsyncData(
    'newsletter',
    () => $fetch('/api/sign_up_news', {
      method: 'POST', // Post method works
      body: {
        email: userEmail.value
      }
    })
  )
}
</script>
Run Code Online (Sandbox Code Playgroud)

server/api/sign_up_news.js:

import { createClient } from '@supabase/supabase-js'

export default async (email) => { // can't read the parameter
  const SUPABASE_KEY = 'key123'
  const SUPABASE_URL = 'url.supabase.co'
  const supabase = createClient(SUPABASE_URL, SUPABASE_KEY)

  const …
Run Code Online (Sandbox Code Playgroud)

javascript anonymous-function vuejs3 supabase nuxtjs3

7
推荐指数
1
解决办法
1万
查看次数