function - 馈送函数作为 Scheme 中的参数
问题描述
我是 Scheme 编程和作业的新手。我有多种功能,func3
坐在顶部func1
喂食func2
,然后喂食func3
。例如我有这样的东西
(define func1
(lambda (a b)
(+ a b)))
(define func2
(lambda (x y)
(+ x y))) ;;; y is a function of above function1
我创建func3
如下
(define func3
(lambda (a b x)
func2 (x (func1 (a b)))))
有什么我做错了还是很简单?让我知道是否需要任何澄清。提前感谢您的帮助。
解决方案
你调用程序的方式不对,它应该是这样的:
(define func3
(lambda (a b x)
(func2 x (func1 a b))))
如您所见,代码中的一些括号放错了位置。关键是要了解如何调用一个过程,例如这是错误的:
func2(x ...) ; missing `(` at the left
这也是不正确的:
(func1 (a b)) ; don't surround parameters with `()`
正确的方法是用()
而不是用参数包围每个过程调用,除非它们本身就是过程调用。像这样:
(func1 a b)
(func2 x (func1 a b))
推荐阅读
- stata - 另一个假人之间的假人
- network-programming - GameMaker Studio 2 网络错误:Socket ConnectWrap 失败错误:-1
- c++ - 在 C++ 中使用 if 语句的最有效方法
- javascript - 如何将“div”列表保存到 sessionStorage 并在用户重新加载页面时显示它们?
- mysql - 无法使用 MAMP 访问 PhpMyAdmin
- python - 齿轮在 discord.py 加载扩展中不起作用
- .net - 带有 Angular 应用程序的 .NET Core 无法在 Visual Studio 2019 中打开
- bash - 获取包含任何 .py 文件的目录的名称
- google-sheets - 为什么连字符会搞砸我的重复查找条件格式?
- c# - 是否可以从依赖项中打开winform表单?