热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

我不明白为什么lambda方案有效

如何解决《我不明白为什么lambda方案有效》经验,为你挑选了1个好方法。

我是全新的计划,来自ac #background.

我以为我正在处理lambda,但我不明白为什么这个例子有效:

(let ([f (lambda x x)]) (f 1 2 3 4) )

答案是(1 2 3 4),但是怎么样?这是我没有得到的xx部分.lambda没有参数,因此正文是xx,对吧?但我不知道在这种情况下这意味着什么,有人可以解释一下吗?谢谢.



1> Óscar López..:

事实上,lambda您的代码中的接收参数和非常多的参数.lambda没有参数的a的语法是不同的:

(let ([f (lambda () 1)]) (f))
=> 1

问题中的lambda表达是另外的:

(lambda x x)

它接收一个可变数量的参数作为列表,然后返回它们.你命名了它f,当它被调用时:

(f 1 2 3 4) 

绑定所有参数x,列表然后x返回值:

'(1 2 3 4)

所以,f只不过是一个接收多个参数的身份函数.也许这个答案将阐明如何在Scheme中定义可变函数.为了完整起见,这里是一个lambda接收单个参数并返回它的示例:

(let ([f (lambda (x) x)]) (f 1))
=> 1

所以你有它,这是我们如何定义lambda接收0,1或许多参数的s.


推荐阅读
author-avatar
小鱼儿r6K2
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有