Functional programming 如何确定方案中的偏执

Functional programming 如何确定方案中的偏执,functional-programming,scheme,Functional Programming,Scheme,我对把偏执论纳入计划有点困惑。下面是一个例子: =>(define foo1 (lambda (n) (+ n 1))) =>(foo1 ((lambda () 5))) =>value:6 给出结果6。但我很惊讶为什么这没有给出一个错误。下面是我如何在计算机中使用它的:首先计算(lambda()5)表达式并返回5。现在,我们删除了它的偏执: =>(foo (5)) 现在这应该是无效的,因为我们在调用函数时不使用paranthes作为参数。但它没有错误。有人能告诉我

我对把偏执论纳入计划有点困惑。下面是一个例子:

=>(define foo1 (lambda (n) (+ n 1)))
=>(foo1 ((lambda () 5)))

=>value:6
给出结果6。但我很惊讶为什么这没有给出一个错误。下面是我如何在计算机中使用它的:首先计算(lambda()5)表达式并返回5。现在,我们删除了它的偏执:

=>(foo (5))
现在这应该是无效的,因为我们在调用函数时不使用paranthes作为参数。但它没有错误。有人能告诉我我做错了什么吗


谢谢

好的!终于弄明白这里发生了什么

此语句的计算结果实际上为5:

((lambda()5))

试试你的回复


内部部分(lambda()5)创建一个过程。外部对“(”,“)”调用函数。显然,这使它返回5

好吧!终于弄明白这里发生了什么

此语句的计算结果实际上为5:

((lambda()5))

试试你的回复


内部部分(lambda()5)创建一个过程。外部对“(”,“)”调用函数。显然,这使它返回5

方案对代码和数据没有根本区别。我为什么要提到这一点?这是因为Lambda的返回总是一个函数或一个错误,即它返回代码而不是简单的数据。任何其他返回函数的函数都将以相同的方式运行

方案对代码和数据没有根本区别。我为什么要提到这一点?这是因为Lambda的返回总是一个函数或一个错误,即它返回代码而不是简单的数据。任何其他返回函数的函数都将以相同的方式运行

你是对的,这真的很奇怪,或者我觉得这很奇怪,因为我是新来的。谢谢你,哈哈。我已经有一段时间没碰这个计划了。这个问题激起了我的好奇心,再次打开了我满是灰尘的钱包。干杯你是对的,这真的很奇怪,或者我觉得这很奇怪,因为我是新来的。谢谢你,哈哈。我已经有一段时间没碰这个计划了。这个问题激起了我的好奇心,再次打开了我满是灰尘的钱包。干杯